红茶的个人站点

  • 首页
  • 专栏
  • 开发工具
  • 其它
  • 隐私政策
Awalon
Talk is cheap,show me the code.
  1. 首页
  2. 开发工具
  3. 正文

Apipost 上手指南

2022年9月26日 1219点热度 0人点赞 0条评论

简介

Apipost是一个用于Web开发的接口调试工具,由国人开发。

官网:Apipost-API 文档、设计、调试、自动化测试一体化协作平台

官方文档:产品介绍 | Apipost

目前版本:7.0

类似的产品还有Postman API Platform | Sign Up for Free,不过个人感觉功能上不如Apipost好用。

基本功能

要在Apipost调试接口,需要先创建项目:

新建项目

Apipost从6开始,一部分功能从本地搬到了web上,所以创建项目时会跳转到web端。

项目管理也是在Web端。

创建好项目后就可以为目标接口创建一个接口调用进行测试了:

新建接口

关于设置参数、请求头,以及不同形式的传参等都很简单,这里不再赘述。

全局header

前后端分离的项目往往会使用请求头中传递令牌的方式进行身份验证,而非使用Cookie。在以前使用此类工具调试接口时可能需要对每个接口都设置一个请求头来传递令牌,这样就非常麻烦。

Apipost可以设置全局header,可以通过它来传递令牌,这样就不需要为每个调用单独设置。

全局token

环境变量

一般而言,一个项目的主域名是不变的,可以在Apipost中将其设置为环境变量,这样每个接口都不需要再写一遍localhost:8080之类的了。

环境变量

这样做还有一个好处,可以设置多个环境,来应对多环境开发。

比如我们可以将已有的默认环境作为dev环境,另外建一个test环境作为测试环境:

多环境

需要注意的是,不同环境的令牌是不同的,所以切换完环境要记得重新执行登录接口请求令牌,并在全局变量中进行替换。

执行脚本

可以在Apipost中编写js脚本,在特定接口调用前和后执行一些特殊的工作。

比如我需要统计某个接口返回的一个数组的元素个数:

示例中的脚本内容如下:

console.log(response.json.data.list.length)

需要注意的是,Apipost定义的response变量包含所有的返回信息,比如响应头是response.header,所以对应的json格式的返回值就要从response.json中读取。

更新 token

这里还可以更进一步,用全局变量+执行脚本来实现登录接口调用后“自动”更新全局header中的令牌:

示例中的脚本如下:

apt.environment.set("token", response.json.data);
  • 要注意的是,Apipost似乎并不能直接调用预定义变量修改全局header的值,所以只能采用这种将header值绑定为全局变量,再用脚本修改全局变量的方式完成自动化。

  • 这里header具体使用环境变量还是全局变量都是可以的,考虑到多环境切换,局部变量更合适一些。

自动登录

通常,访问令牌都有一个有效时长,超时没有操作会自动失效,此时再请求接口会返回错误信息,比如 HTTP CODE 401,表示登录状态已失效:

image-20250609123151441

可以利用执行脚本实现登录状态失效后“自动重新登录”:

image-20250609153814330

console.log(response.raw.status)
if (response.raw.status = 401) {
    //登录状态失效,重新登录
    const baseURL = apt.environment.get("baseURL");
    const phone = apt.environment.get("phone")
    try {
        let response = await apt.sendRequest({
            url: baseURL + "login/sendCode/" + phone,
            method: "PUT"
        });
        let resJson = response.json()
        console.log(resJson)
        if (!resJson.success) {
            console.log("自动登录脚本出错" + resJson.message)
            return;
        }
        // 发送验证码成功,用验证码登录
        const code = resJson.data;
        await $.ajax({
            url: baseURL + "login",
            method: "POST",
            headers: {
                "content-type": "application/json"
            },
            timeout: "10000",
            data: JSON.stringify({
                "phone": phone,
                "captcha": code
            }),
            success: function (response) {
                console.log(response)
                if (!response.success) {
                    console.log("自动登录脚本出错:" + response.message);
                    return;
                }
                const token = response.data;
                // 将 token 写入环境变量
                apt.environment.set("token", token);
            }
        }
        );
    } catch (err) {
        console.error(err);
    }
}

接口文档

通常对于Spring Boot项目,更推荐使用Swagger生成接口文档,但某些时候可能因为这样或者那样的原因不能那样做,作为一个替代方案,此时我们可以使用ApiPost来生成接口文档:

像上面展示的那样,生成的接口文档可以通过ApiPost的分享链接分享出去,非常好用。

以上就是我认为Apipost中比较实用的功能,更多使用指南可以看官方手册。

谢谢阅读。

参考资料

  • 产品介绍 | Apipost

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: APIPOST
最后更新:2025年6月9日

魔芋红茶

加一点PHP,加一点Go,加一点Python......

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2021 icexmoon.cn. ALL RIGHTS RESERVED.
本网站由提供CDN加速/云存储服务

Theme Kratos Made By Seaton Jiang

宁ICP备2021001508号

宁公网安备64040202000141号