我有接口文档, 你有酒吗?

简介: 接口文档生成流程介绍目前我们QA在测试过程中, 存在着接口文档不全或有出入(包括更新)的情况。这时候我们一般会阅读开发编写的代码或者直截了当去问开发。这2种方法的弊端都很明显, 即增加了沟通和时间成本。

接口文档生成流程

介绍

目前我们QA在测试过程中, 存在着接口文档不全或有出入(包括更新)的情况。

这时候我们一般会阅读开发编写的代码或者直截了当去问开发。

这2种方法的弊端都很明显, 即增加了沟通和时间成本。

自己看代码且不论QA对于开发语言的熟悉程度, 有的代码QA并不可见。独自研究费时费力, 去找开发询问的时候,得问到对应的人, 他们还需要花费时间精力去搜寻。

==现在, 这些问题都将迎刃而解==。

原理介绍

通过swagger插件(如jar包)解析编写了接口注解的java代码, 而后通过生成的swagger.json文件解析出接口信息并导入接口文档管理工具(yapi)。

第一步: 编写注解

swagger是一个较为流行的接口文档管理工具, 但是这里我们不打算将他作为我们的大方向。其实接口文档的核心基本都已固定, 如path(route), 参数, 响应, 请求方式等。swagger在这点做得相当不错, 使用json-schema约束json字段的属性(required, example, type等)。

简而言之, 第一步就是通过注解对java中各个字段的参数做了约束, 通过插件生成json文档。

下面我们来看一个例子:

example地址, 这是一个长得像外国人的中国老哥

我们来看下注解的具体实现


package com.github.kongchen.swagger.sample.wordnik.resource;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.*;
import com.github.kongchen.swagger.sample.wordnik.model.LoginData;

import javax.ws.rs.FormParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;

@Path("/login")
@Api(value = "login", description = "登录接口")
@Produces({"application/json"})
public class woodyTest {
  @POST
  @ApiOperation(value = "用户登录")
  @ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid ID supplied"),
          @ApiResponse(code = 404, message = "Order not found")})
  public Response getSuite(
          @ApiParam(value = "登录请求json参数", required = true) LoginData data) {
      System.out.println(data);
      return Response.ok().entity("").build();
  }
}

==图中的@POST, @ApiResponses, @Path等@==
意味都比较显著了吧, 因为我的java只有一点点语法基础, 所以理解可能有点出入, 我这里简单理解为注释的意思。如有不对求指教=。=

接下来我们来看看LoginData怎么写。


package com.github.kongchen.swagger.sample.wordnik.model;

import io.swagger.annotations.ApiModelProperty;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.Date;

@XmlRootElement(name = "LoginData")  // 这是xml的信息, 我这里都去掉了不用
public class LoginData {
    @ApiModelProperty(value="用户名", name="user", example = "wuranxu")
    private String user;
     @ApiModelProperty(value="用户密码", name="pwd", example = "wodemimajiushimeiyoumima", required = true)
    private String pwd;

    @XmlElement(name = "user")
    public String getUser() {
        return user;
    }

    public void setUser(String user) {
        this.user = user;
    }

    @XmlElement(name = "pwd")
    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
}

这个类里面, 有user和login属性, 分别给属性加了类似这样的注解

@ApiModelProperty(value="用户名", name="user", example = "wuranxu")

这里就是字段的约束。

第二步: 通过注解生成swagger.json

下载第一步那个小哥给出的demo, 解决好pom文件的依赖后。

在demo目录执行:

mvn clean compile

image.png

可以看到图中目录生成了swagger.json

image.png

来看看生成的json

image.png

第三步: 导入yapi

先来介绍下yapi吧~

yapi是去哪儿的大前端团队开发,基于react+antd的一套接口文档管理工具。给个掌声, 真的很良心。

具体地址

大家可以试用了感受一下。

至于不需要yapi, 钟爱原生swagger的童鞋, 也可以直接将swagger.json放入你的本地swaggerUI中查看接口文档啦。

那么附上一张swagger的截图吧...

image.png

后话

其实缺点就是开发需要在每个model的类加上注解, 写每一个接口也需要注解, 开发不好惹千万千万不要推:)

当然还有第四步啦, 因为···这些都是手动干的啊, 没人有那么多精力去手动维护这些破json。预知后事如何, 请看下集预告。(写文档码字太久要去干活儿了)

相关文章
|
9月前
|
JSON API 数据格式
轻松掌握!作为产品经理,手把手教你使用API接口获取拼多多商品详情
拼多多作为中国最大的电商平台之一,拥有海量的商品信息和用户数据。为了方便开发者获取这些数据,拼多多开放平台提供了API接口。通过这些接口,我们可以获取到商品的标题、描述、图片、价格等详细信息。本文将以产品经理的身份,为您详细介绍如何使用API接口获取拼多多商品详情。
|
XML JSON 缓存
当当网获得当当商品详情 API ,当当商品详情接口,当当API接口
当当网获得当当商品详情 API ,当当商品详情接口,当当API接口
|
6月前
|
JSON API 开发者
虾皮(Shopee)获取商品详情信息接口技术贴详解
虾皮(Shopee)为东南亚领先电商平台,提供丰富的API服务,便于第三方应用集成并获取商品数据。本文介绍如何利用Python调用商品详情接口获取指定商品信息,包括构建请求URL、发送HTTP请求及处理JSON响应数据。开发者需先注册获取API凭证,再调用接口并解析返回的商品详情。注意遵循接口调用限制,确保数据准确性和应用稳定性。
150 0
|
小程序 Java API
Swagger3.0 天天刷屏,真的香吗?
前言 官方文档如何说? Spring Boot版本说明 添加依赖 springfox-boot-starter做了什么? 撸起袖子就是干? 定制一个基本的文档示例 文档如何分组? 如何添加授权信息? 如何携带公共的请求参数? 粗略是一个BUG 总结
|
9月前
|
存储 JSON API
如何教会小白使用淘宝API接口获取商品数据
随着互联网的普及,越来越多的人开始接触网络购物,而淘宝作为中国最大的电商平台之一,成为了众多消费者首选的购物平台。然而,对于一些小白用户来说,如何通过淘宝API接口获取商品数据可能是一个难题。本文将详细介绍如何教会小白使用淘宝API接口获取商品数据。
|
存储 JSON API
如何教会小白使用API接口获取商品数据
在当今的数字化时代,API接口已经成为数据获取的重要通道。API,全称应用程序接口,是一种预定义的软件组件,用于提供特定的功能或数据。通过使用API接口,我们可以轻松地从各种数据源获取信息,包括商品数据。本文将指导小白如何使用API接口获取商品数据,从申请API接口、使用API接口到实际应用,一一讲解。
|
1月前
|
供应链 数据挖掘 API
探秘淘宝商品SKU信息API接口
在电子商务中,SKU(库存量单位)用于区分商品的不同规格、颜色、尺寸等属性,是精细化管理的基础。本文深入探讨淘宝商品SKU信息API接口,介绍其功能特点、使用方法及应用场景,并提供Python代码示例。该API支持实时更新、多维度筛选,帮助开发者获取全面的SKU信息,优化库存管理、订单处理和销售数据分析,提升运营效率与市场竞争力。
64 1
|
数据采集
当当商品详情接口
当当商品详情接口
|
3月前
|
数据采集 监控 数据挖掘
拼多多商品评价API的获取与应用
在数字化商业时代,拼多多商品评价API为开发者和企业提供深入理解消费者反馈、优化产品策略及提升用户体验的重要途径。本文详述了该API的获取方法及其在电商平台运营优化、品牌商市场调研与产品改进、数据分析与市场洞察等领域的广泛应用,强调了遵守使用规范、数据质量处理及性能优化的重要性。
157 0
|
9月前
|
JSON 搜索推荐 API
使用API接口获取拼多多商品详情
随着电商行业的快速发展,越来越多的电商平台涌现出来,为消费者提供了丰富的商品选择。拼多多作为国内知名的电商平台之一,拥有庞大的商品库和优惠活动,吸引了大量的用户。本文将详细介绍如何通过调用API接口获取拼多多商品详情,帮助开发者快速实现拼多多商品信息的获取和展示。

热门文章

最新文章