37DATA

优雅接口联调-GoLand接口同步YAPI

目标和效果预览


涉及内容

文章中用到的技术栈包括:GoLand、Swagger、YAPI

目标:随时同步接口到YAPI,提升协作效率

  • 高效提供API文档;

  • API调试

  • 保存测试用例;

效果:

Image

实施


注释写法

1、设置项目同步接口

按自己项目路由规则书写即可,下图则是本人项目内的写法

Image

// ====================================================================// 配置文件定义变量// ====================================================================swagger:  token: "xxxx"                             # YAPI上创建项目的token// ====================================================================// 接口定义// ====================================================================type SyncInterfaceReq struct {    g.Meta `path:"/sync/interface" tags:"接口管理" method:"post" summary:"同步接口到YApi"`}type SyncInterfaceRes struct {    Msg string `json:"msg"  dc:"结果"`}// ====================================================================// controller定义// ====================================================================var (    Swagger = cSwagger{})type cSwagger struct{}// SyncToYApi 同步API数据到YAPIfunc (c *cSwagger) SyncToYApi(ctx context.Context, _ *v1.SyncInterfaceReq) (res *v1.SyncInterfaceRes, err error) {    msg, err := service.Swagger().SyncToYApi(ctx)    if err != nil {       return    }    res = &v1.SyncInterfaceRes{Msg: msg}    return}// ====================================================================// service定义// ====================================================================import (    "context"    "github.com/JanVee/yapigo")type sSwagger struct{}func init() {    service.RegisterSwagger(NewSwagger())}func NewSwagger() *sSwagger {    return &sSwagger{}}func (s *sSwagger) SyncToYApi(ctx context.Context) (msg string, err error) {    return yapigo.MergingToYApi(ctx), nil}
如下图所示,同步接口已经被定义好了,如果有异常,可执行:

go get github.com/JanVee/yapigo

    • 加载同步组件

Image

如下图所示,获取项目Token

    • 项目Token:登陆YApi,进入【 项目列表 »»» 项目/设置 »»» Token设置 】查看自己项目的Token值

Image


2、GO项目中配置RUN

»»» a、在项目目录内创建http文件,本文创建在工具类中

Image

// ====================================================================// Yapi.http文件内容如下:### UpdateYApiPOST {{domain}}/api/sync/interfaceContent-Type: application/json// ====================================================================// http-client.private.env.json文件内容如下:配置本地域名和端口// ===================================================================={  "dev": {    "domain": "http://127.0.0.1:8000"  }}

Image

备注:可以看到Yapi.http就可以使用配置的环境变量了

»»» b、边开发边同步接口到线上Yapi

Image

到目前为止,就实现了接口同步工作

YAPI调试和测试集合


调试和测试

»»» a、安装Cross-Request插件 :

注意:首次进行接口测试,“发送”按钮为灰色,会提示需要安装cross-request插件

Image

  • 点击下载.zip安装包;

  • 谷歌浏览器:设置---->更多工具---->扩展程序---→开发者模式;

  • 将下载的安装包直接拖入浏览器,即可自动安装;

Image

结语


总结
在团队协作当中,我们会期望协作方可以先提供接口,方便自己有效的工作,此时一个可随时变更接口至线上YAPI系统功能将十分重要,不仅仅方便自己开发调试,测试过程中YAPI的测试集合,也是有价值的,直接提供给协作方使用,提升了大家的工作效率。