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

93 阅读3分钟

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

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

  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:

写好如下表设置:

图片

懒人代码:

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,学着之前项目列表的前端代码,创建接口列表:

图片

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

<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>

看看效果:

图片

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

本文使用 文章同步助手 同步