1. 基础说明

1.1 背景

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。API除了有应用“应用程序接口”的意思外,还特指API的说明文档,也称为帮助文档。

1.2 基本约束

1.2.1 字符集

  • 所有接口字符集采用UTF-8。

1.2.2 返回类型约束

  • 所有接口返回必须是严格定义的JSON类型。

1.2.3 接口版本约束

  • 不允许发布无版本号的接口。

  • 接口版本首先解决的是一组接口的版本问题。

1.3 请求公共约束

请求的基本模板:

curl -X[HTTP METHOD] -H "Content-Type: application/json" -H "[token-info]:""https://api-[env-name].[groupname].domain.io/[client-group]/[service-group]/[version]/[endpoint]" -d '{"head": [meta-parameters],"body": [content]}'

1.4 URL整体规划

1.4.1 域名规范

  • https://api-[env-name].[groupname].domain.io/[client-group]/[service-group]/[version]/[endpoint]

1.4.2 域名规则

  • 开发环境:https://api-dev.payment.domain.io/

  • 测试环境:https://api-test.payment.domain.io/

  • 预演环境:https://api-staging.payment.domain.io/

  • 线上测试环境:https://api-onlinetest.payment.domain.io/

  • 生产环境:https://api.payment.domain.io/

  • 其中线上测试环境是上线过程中备用,比如线上一共3台生产环境服务器,将其中一台从生产环境切掉,更新程序并且将域名指向它,测试完之后再将生产环境流量切换过来。

1.5 基本数据类型约定

此约定是系统整体容错的一部分,但是无论接口使用者还是生产者,都不应该因为此容错而减少自己模块本来需要的容错工作。

1.6 公共输入参数规范

1.7 公共返回对象约定

{"responseCode": [responseCode],"responseInfo": {"userMessage": [userMessage],"internalMessage": [internalMessage],"guideline": [guideline link]  },"link": {"document":" https://[domain]/docs#zoos","href":[uri-info],"title":[doc-title],"type":"application/[vnd.yourformat]+json"  },"responseData":[responseData]}

1.8 公共错误编码及说明

1.9 公共数据字典

2. 订单服务

2.1 查询订单列表

2.1.1 接口规范

2.1.2 输入参数示范

curl -XGET -H "Content-Type: application/json" -H "Access-Token:abcd1234" "https://api-dev.haitao.domain.io/mobile/data-platform/v1/orders/base-orders" -d '{"head": [meta-parameters],"body": {"pageSize":10,"pageNo":1  }}'

2.1.3 返回参数示范

{"responseCode": [responseCode],"responseInfo": {"userMessage": [userMessage],"internalMessage": [internalMessage],"guideline": [guideline link]  },"link": {"document":" https://[domain]/docs#zoos","href":[uri-info],"title":[doc-title],"type":"application/[vnd.yourformat]+json"  },"responseData": {"pageCount": 12,"pageNo": 2,"data": {    }  }}

https接口_API设计指南 一个接口文档模板的最佳实践相关推荐

  1. 缺陷管理-基于企业微信文档设计的一个缺陷管理文档

    基于企业微信文档设计的一个缺陷管理文档 虽然禅道.jira很好用,但对于开发周期较短的项目,将项目部署到禅道或jira中会有些许繁琐(老板讲的,不是我认为的).既然无法要求团队使用什么工具,那就改变自 ...

  2. 笔记:软件工程常用开源文档模板 + 软件著作权

    https://github.com/AlexanderZhou01/China-software-copyright 下载以上的工程 解压放到U盘里 打开 D:\China-software-cop ...

  3. 组件接口(API)设计指南-文件夹

    组件接口(API)设计指南-文件夹 组件接口(API)设计指南[1]-要考虑的问题 组件接口(API)设计指南[2]-类接口(class interface) 组件接口(API)设计指南[3]-托付( ...

  4. Effective Java 类和接口 第17条:要么为继承而设计,并提供文档说明,要么就禁止继承

    第16条提醒我们,对于不是为了继承而设计,并且没有文档说明的"外来"类进行子类化是多么危险.那么对于专门为了继承而设计并具有良好文档说明的类而言,这有意味着什么呢? 该类的文档必须 ...

  5. 如何设计好一个接口?

    如何设计好一个接口? 前言 安全性 稳定性 健壮性 限流 接口响应超时处理 可靠性 幂等性 事务一致性 分布式事务 高效性 线程安全问题 可维护性 可读性 前言 接口对于我们系统来说是必不可少的,可以 ...

  6. 一份很不错的敏捷产品接口文档模板

    在采用敏捷研发的过程中,前后端开发人员如何来描述与记录接口信息?如何精简的描述接口的用处?接口的请求方式?接口的入参是什么?返回模型是什么等等. 结合我们项目团队多年的实际情况以及授课老师的推荐,我觉 ...

  7. 在TCL网线接口的彩电上看pdf文档的电子书 845电脑的扫描电子电路图扫描仪图

    在TCL网线接口的彩电上看pdf文档的电子书  845电脑的扫描电子电路图扫描仪图 在TCL网线接口的彩电上看pdf文档的电子书  845电脑的扫描电子电路图扫描仪图 我加的电视是tcl48寸带网线接 ...

  8. 架构实战:架构设计文档模板

    在前面的专栏里,有同学留言说想看看具体的架构设计文档.由于信息安全的原因,再加上稍微复杂的系统,设计文档都是几十页,因此专栏无法直接给出详细的文档案例.但我认为提供一个架构设计文档模板还是很有必要的, ...

  9. jsoup解析和遍历一个html文档详解

    解析和遍历一个HTML文档 如何解析一个HTML文档: String html = "<html><head><title>First parse< ...

最新文章

  1. 使用sklearn进行数据预处理 —— 归一化/标准化/正则化
  2. 关于SVN 目录结构
  3. python调用动态库出现error193_切换到64位时使用Python Winerror 193
  4. 互联网日报 | 3月2日 星期二 | ​互联网人薪资报告:2021 开年薪资环比增长 7%...
  5. 最后一周,如何高效率的备考软考信息安全工程师?
  6. 欧几里得与扩展欧几里得总结
  7. 语言认知偏差_认知语言学可以教给开发人员什么
  8. php怎样实现表格自动缩放字体,php实现在限定区域里自动调整字体大小的类实例,字体大小实例_PHP教程...
  9. java httppost 400_java – HTTP状态400 – 必需字符串参数’walletName’不存在
  10. 一个维护版本日志整洁的Git提交规范
  11. 【操作系统】线程的实现-思维导图
  12. 安装keepalived执行make报错的解决方法
  13. 云计算一周动态2016-07-11
  14. 线性代数知识荟萃(4)——矩阵相抵
  15. svn 服务器修改密码,用户自行修改svn密码的简单服务
  16. Photoshop制作印章效果
  17. 计算机术语 gc 是什么意思,GC是什么?为什么我们要去使用它
  18. 语料库mysql_基于PHP+MySQL的小型语料库程序设计解决方案
  19. JQ拖曳事件mouseup失效的解决办法
  20. Windows 常见文件扩展名解释

热门文章

  1. IPSEC ×××需要解决的路由问题及影响IPSEC ×××的网络问题
  2. 三议(巧用:before和inline-block伪元素解决)跨浏览器不定长宽,中心为基点,百分比定位~...
  3. 水滴石穿之页面遮罩层实现、向window.open()打开的窗口POST数据
  4. FMS 中文帮助 (下载)
  5. 如何优化WebAPP性能:从四个层面上彻底优化前端项目性能
  6. Nginx限制连接数和下载速度
  7. NGINX配置基于Node.js服务的负载均衡服务器
  8. 容器编排技术 -- Kubernetes kubectl get 命令详解
  9. 使用TLS安全的访问Minio服务​​​​​​​
  10. 整理了Linux常用命令变量