搭建B2B平台系统的必要性与AI技术的应用探索
893
2023-01-02
本文目录一览:
刚开始写接口文档的服务端同学,很容易按着代码的思路去编写接口文档,这让客户端同学或者是服务对接方技术人员经常吐槽,看不懂接口文档。这篇文章提供一个常规接口文档的编写方法,给大家参考。
推荐使用的是docway 写接口文档,方便保存和共享,支持导出PDF MARKDOWN,支持团队项目管理。
一、请求参数
1. 请求方法
GET
用于获取数据
POST
用于更新数据,可与PUT互换,语义上PUT支持幂等
PUT
用于新增数据,可与POST互换,语义上PUT支持幂等
DELETE
用于删除数据
其api在线文档编写他
其他的请求方法在一般的接口中很少使用。如api在线文档编写:PATCH HEAD OPTIONS
2. URL
url表示api在线文档编写了接口的请求路径。路径中可以包含参数,称为地址参数,如**/user/{id}**,其中id作为一个参数。
3. HTTP Header
HTTP Header用于此次请求的基础信息,在接口文档中以K-V方式展示,其中Content-Type则是一个非常必要的header,它描述的请求体的数据类型。
常用的content-type:
application/x-www-form-urlencoded
请求参数使用“”符号连接。
application/json
内容为json格式
application/xml
内容为xml格式
multipart/form-data
内容为多个数据组成,有分隔符隔开
4. HTTP Body
描述http body,依赖于body中具体的数据类型。如果body中的数据是对象类型。则需要描述对象中字段的名称、类型、长度、不能为空、默认值、说明。以表格的方式来表达最好。
示例:
二、响应参数
1. 响应 HTTP Body
响应body同请求body一样,需要描述请清除数据的类型。
另外,如果服务会根据不同的http status code 返回不同的数据结构, 也需要针对不同的http status code对内容进行描述。
三、接口说明
说明接口的应用场景,特别的注意点,比如,接口是否幂等、处理是同步方式还是异步方式等。
四、示例
上个示例(重点都用红笔圈出来,记牢了):
五、接口工具
推荐使用的是http://docway.net(以前叫小幺鸡) 写接口文档,方便保存和共享,支持导出PDF MARKDOWN,支持团队项目管理。
Java语言提供了一种强大的注释形式:文档注释。可以将源代码里的文档注释提取成一份系统的API文档。我们在开发中定义类、方法时可以先添加文档注释api在线文档编写,然后使用javadoc工具来生成自己的API文档。
文档注释以斜线后紧跟两个星号(/**)开始api在线文档编写,以星号后紧跟一个斜线(*/)作为结尾,中间部分全部都是文档注释,会被提取到API文档中。
自行搜索一下javadoc即可,示例如下:
1234567891011121314151617181920212223242526272829/** * 类描述 * * @author 作者 * @version 版本 */public class DemoClass { /** * 内部属性:name */ private String name; /** * Setter方法 * @return name */ public String getName() { return name; } /** * Getter方法 * @param name */ public void setName(String name) { this.name = name; } }
作为一个前后端分离模式开发的团队,我们经常会看到这样的场景:前端开发和后端开发在一起热烈的讨论“你这接口参数怎么又变了?”,“接口怎么又不通了?”,“稍等,我调试下”,“你再试试..."。
那能不能写好接口文档,大家都按文档来开发?很难,因为写文档、维护文档比较麻烦,而且费时,还会经常出现 API 更新了,但文档还是旧的,各种同步不一致的情况,从而耽搁彼此的时间。
之前我们团队也遇到了同样的问题,那么作为研发团队的负责人,我是如何带领团队解决这个问题的呢?
方法其实很简单,如果能做到让写文档/维护文档这件事情的短期收益就能远高于付出的成本,那么所有问题都能迎刃而解,开发人员就会非常乐意去写接口文档。
要做到写文档和及时维护文档的短期收益就能远高于付出的成本,无非两个方向:
鉴于此,我们设想如果有一款工具做到以下这些是不是就非常爽了?
总结下来,我们需要的就是这么一款工具:
为此,我们几乎尝遍了市面上所有相关的工具,但是很遗憾,没有找到合适的。
于是,我们自己实现了一个Postman + Swagger + RAP + JMeter
这个工具就是 Apifox,经常很长一段时间不断更新迭代后,我们基本上完全实现了最初的设想,几乎完美解决了最开始遇到的所有问题,在公司内部大受欢迎。并且也形成了我们自己的最佳实践。
没错,现在我们已经将Apifox产品化对外服务了,你们团队也可以直接使用Apifox了。
官网:www.apifox.cn
Apifox = Postman + Swagger + Mock + JMeter
Apifox 是 API 文档、API 调试、API Mock、API 自动化测试一体化协作平台。
通过一套系统、一份数据,解决多个系统之间的数据同步问题。只要定义好接口文档,接口调试、数据 Mock、接口测试就可以直接使用,无需再次定义;接口文档和接口开发调试使用同一个工具,接口调试完成后即可保证和接口文档定义完全一致。高效、及时、准确!
节省研发团队的每一分钟!
如果你认为 Apifox 只做了数据打通,来提升研发团队的效率,那就错了。Apifox 还做了非常多的创新,来提升开发人员的效率。
通常一个接口会有多种情况用例,比如 正确用例 参数错误用例 数据为空用例 不同数据状态用例。定义接口的时候定义好这些不同状态的用例,接口调试的时候直接运行,非常高效。
可以独立定义数据模型,接口定义时可以直接引用数据模型,数据模型之间也可以相互引用。同样的数据结构,只需要定义一次即可多处使用;修改的时候只需要修改一处,多处实时更新,避免不一致。
使用 Apifox 调试接口的时候,系统会根据接口文档里的定义,自动校验返回的数据结构是否正确,无需通过肉眼识别,也无需手动写断言脚本检测,非常高效!
Apifox 自动校验数据结构
设置断言:
Apifox 设置断言
运行后,查看断言结果:
先放一张图对比下 Apifox 和其他同类工具 零配置 mock 出来的数据效果:
Apifox Mock 数据结果对比同类工具
可以看出 Apifox 零配置 Mock 出来的数据和真实情况是非常接近的,前端开发可以直接使用,而无需再手动写 mock 规则。
「Apifox 如何做到高效率、零配置生成非常人性化的 mock 数据」
Apifox 项目可“在线分享” API 文档,分享出去的 API 文档可设置为公开或需要密码访问,非常方便与外部团队协作。
体验地址:https://www.apipark.cn/s/ce387612-cfdb-478a-b604-b96d1dbc511b/http/5041285
根据接口模型定义,自动生成各种语言/框架(如 TypeScript、Java、Go、Swift、ObjectiveC、Kotlin、Dart、C++、C#、Rust 等)的业务代码(如 Model、Controller、单元测试代码等)和接口请求代码。目前 Apifox 支持 130 种语言及框架的代码自动生成。
更重要的是:你可以通过自定义代码模板来生成符合自己团队的架构规范的代码,满足各种个性化的需求。
接口调试
Apifox 多种主题色可选
Android中文版
api手册地址:http://www.matools.com/api/android
Ant最新版
api手册地址:http://www.matools.com/api/ant
ASM字节码操作
api手册地址:http://www.matools.com/api/asm
Axis2最新版
api手册地址:http://www.matools.com/api/axis2
Bash脚本
api手册地址:http://www.matools.com/api/bash
Bootstrap 3
api手册地址:http://www.matools.com/api/bootstrap3
Bootstrap 4
api手册地址:http://www.matools.com/api/bootstrap4
C/C++
api手册地址:http://www.matools.com/api/c
C3P0连接池
api手册地址:http://www.matools.com/api/c3p0
CentOS使用文档
api手册地址:http://www.matools.com/api/centos
Commons-Beanutils
api手册地址:http://www.matools.com/api/commons-beanutils
Commons-Fileupload
api手册地址:http://www.matools.com/api/commons-fileupload
Commons-IO最新版
api手册地址:http://www.matools.com/api/commons-io
Commons-Lang最新版
api手册地址:http://www.matools.com/api/commons-long
Commons-Net最新版
api手册地址:http://www.matools.com/api/commons-net
CSS 3
api手册地址:http://www.matools.com/api/css
DBCP连接池
api手册地址:http://www.matools.com/api/dbcp
Dom4j
api手册地址:http://www.matools.com/api/dom4j
dubbo中文文档
api手册地址:http://www.matools.com/api/dubbo
EhCache
api手册地址:http://www.matools.com/api/ehcache
Freemarker
api手册地址:http://www.matools.com/api/freemarker
Go语言
api手册地址:http://www.matools.com/api/go
Hadoop
api手册地址:http://www.matools.com/api/hadoop
Hibernate中文版
api手册地址:http://www.matools.com/api/hibernate
IKAnalyzer中文版
api手册地址:http://www.matools.com/api/ikanalyzer
Java 10
api手册地址:http://www.matools.com/api/java10
Java 6
api手册地址:http://www.matools.com/api/java6
Java 7
api手册地址:http://www.matools.com/api/java7
Java 8中文版
api手册地址:http://www.matools.com/api/java8
jqGrid中文版
api手册地址:http://www.matools.com/api/jqgrid
Jquery中文版
api手册地址:http://www.matools.com/api/jquery
Json-lib
api手册地址:http://www.matools.com/api/json-lib
Junit4最新版
api手册地址:http://www.matools.com/api/junit
Kryo
api手册地址:http://www.matools.com/api/kryo
Log4j最新版
api手册地址:http://www.matools.com/api/log4j
Lucene
api手册地址:http://www.matools.com/api/lucene
Maven
api手册地址:http://www.matools.com/api/maven
Windows MFC中文版
api手册地址:http://www.matools.com/api/msdn
Mybatis
api手册地址:http://www.matools.com/api/mybatis
MySql中文版
api手册地址:http://www.matools.com/api/mysql
Netty 3.6
api手册地址:http://www.matools.com/api/netty
Nginx中文版
api手册地址:http://www.matools.com/api/nginx
OpenJPA最新版
api手册地址:http://www.matools.com/api/openjpa
PHP中文版
api手册地址:http://www.matools.com/api/php
POI-apache
api手册地址:http://www.matools.com/api/poi
QuickServer
api手册地址:http://www.matools.com/api/quickserver
redis中文参考文档
api手册地址:http://www.matools.com/api/redis
Ruby
api手册地址:http://www.matools.com/api/ruby
Ruby-library
api手册地址:http://www.matools.com/api/ruby-library
Ruby on Rails
api手册地址:http://www.matools.com/api/rubyonrails
Shiro
api手册地址:http://www.matools.com/api/shiro
Spring最新版
api手册地址:http://www.matools.com/api/spring
Spring for Android
api手册地址:http://www.matools.com/api/spring-android
Spring Boot
api手册地址:http://www.matools.com/api/spring-boot
Spring Cloud中文文档
api手册地址:http://www.matools.com/api/spring-cloud
Spring Security
api手册地址:http://www.matools.com/api/spring-security
Spring中文版
api手册地址:http://www.matools.com/api/spring-zh
Struts 2最新版
api手册地址:http://www.matools.com/api/struts2
Taperstry
api手册地址:http://www.matools.com/api/taperstry
TensorFlow中文
api手册地址:http://www.matools.com/api/tensorflow
Tomcat
api手册地址:http://www.matools.com/api/tomcat
Ubuntu
api手册地址:http://www.matools.com/api/ubuntu
Velocity 1.7
api手册地址:http://www.matools.com/api/velocity
VelocityTools2.0
api手册地址:http://www.matools.com/api/velocity-tools
Vue Router中文参考
api手册地址:http://www.matools.com/api/vue-router
vue.js中文文档
api手册地址:http://www.matools.com/api/vuejs
XMLBeans
api手册地址:http://www.matools.com/api/xmlbeans
Yahoo UI中文版
api手册地址:http://www.matools.com/api/yui
Zend Framework中文版
api手册地址:http://www.matools.com/api/zend-framework
Zookeeper
api手册地址:http://www.matools.com/api/zookeeper
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。