前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >接口测试平台代码实现30:接口库-接口列表

接口测试平台代码实现30:接口库-接口列表

作者头像
我去热饭
发布2022-05-19 08:44:28
6700
发布2022-05-19 08:44:28
举报
文章被收录于专栏:测试开发干货

本节开始,最近篇章都应该是设计接口库的功能,让我们先从设计接口列表下手:

开发一个接口列表,用到的设计思路 和之前的项目列表类似:

  1. 数据库中的接口表
  2. 前端循环展示
  3. 增加/删除/设置/复制/备注/健壮性测试 等按钮
  4. 后端实现上述

首先来设计这个接口表:

一个接口实体应该具有哪些字段呢?

1. id ,自动生成无需在意

2.project_id ,所属的项目id

3.name , 接口名字

4.api_method ,请求方式

5.api_url , 请求url

6.api_header ,请求头

7.api_login ,是否需要带登陆状态

8.api_host , 域名

9.des, 描述

10.body_method , 请求体编码格式

11.api_body, 请求体

12.result , 结果-返回体

13.sign , 是否需要启动自定义算法加密

14.file_key ,带文件的文件key

15.file_name , 带文件的文件名

16.public_header , 项目的全局变量-公共请求头

这里我们先把所有可能用到的字段都列举出来了。怎么样,发送一个请求是不是比我们看到的要复杂多了?

注意,各种长度要尽量符合实际情况,比如url,有些接口甚至达到上千字符

而header则可能更长。但是这里的设置最大长度只会限定住后台admin 中你手动输入的情况。实际中我们在后台代码通过orm则可以无限制存储。

好的,打开models.py:

写好如下表设置:

懒人代码:

代码语言:javascript
复制

class DB_apis(models.Model):
    project_id = models.CharField(max_length=10,null=True) #项目id
    name =  models.CharField(max_length=100,null=True) #接口名字
    api_method =  models.CharField(max_length=10,null=True) #请求方式
    api_url =  models.CharField(max_length=1000,null=True) #url
    api_header =  models.CharField(max_length=1000,null=True) #请求头
    api_login =  models.CharField(max_length=10,null=True) #是否带登陆态
    api_host =  models.CharField(max_length=100,null=True) #域名
    des =  models.CharField(max_length=100,null=True) #描述
    body_method =  models.CharField(max_length=20,null=True) #请求体编码格式
    api_body =  models.CharField(max_length=1000,null=True) #请求体
    result =  models.TextField(null=True) #返回体 因为长度巨大,所以用大文本方式存储
    sign =  models.CharField(max_length=10,null=True) #是否验签
    file_key =  models.CharField(max_length=50,null=True) #文件key
    file_name =  models.CharField(max_length=50,null=True) #文件名
    public_header =  models.CharField(max_length=1000,null=True) #全局变量-请求头
    def __str__(self):
        return self.name

然后同步数据库:

然后admin.py中注册:

然后我们去后台创建1条接口记录,以便我们之后前端列表的展示调试。

注意这里我们必须填入所有字段才能保存成功。仅展示用,所以大家无需填入真正规则的数据。

然后我们开始更新views.py中的child_json(),要增加几句代码,用来从数据库接口表中取数据传递给前端页面:

其中获取数据库的接口,要过滤,必须是项目id正确的 才会要。

给前端的这个res json串,中的apis 就可以让前端直接使用了,

打开P_apis.html,学着之前项目列表的前端代码,创建接口列表:

大家可直接复制代码:(建议能自己敲下来的自己敲,完全懂的才可以复制粘贴)

代码语言:javascript
复制
<br><br>
<table class="table table-striped">
    <thead>
        <tr>
            <th>id</th> <th style="width: 50%">接口名称</th> <th style="width: 30%">url</th> <th>操作</th>
        </tr>
    </thead>
    <tbody>
         {% for i in apis %}
             <tr>
                <td>{{ i.id }}</td><td>{{ i.name }}</td> <td>{{ i.api_url }}</td>  <td>
                 <button onclick="" class="btn btn-success">调试</button> <button onclick="" class="btn btn-danger">删除</button></td>
            </tr>
        {% endfor %}
    </tbody>
</table>

看看效果:

好了,本节就说到这里了,下节课我们继续开发这个接口列表

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发干货 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档