HTTP API接口设计规范

简介: HTTP API接口设计规范

1. 所有请求使用POST方法

使用post,相对于get的query string,可以支持复杂类型的请求参数。例如日常项目中碰到get请求参数为数组类型的情况。


便于对请求和响应统一做签名、加密、日志等处理


2. URL规则

URL中只能含有英文,使用英文单词或简称,不要使用汉语拼音


所有字符使用小写字母


多个单词之前使用连字符-分隔,如third-login, 不要使用thirdlogin,thirdLogin或third_login


URL的path部分使用 系统/模块/操作 的格式,如 ims/video/list


系统,表示这个接口是微服务中的哪个服务,可使用简称

模块,表示系统的子模块。模块名字使用名词全称,且使用单数形式

操作,表示具体的接口,使用动词+名词的形式,需要考虑单复数。比如add-user,list-users,delete-users

3. HTTP头部

将具体业务无关的数据放在HTTP headers

后端系统可以在不涉及请求和响应体的情况下,处理一些公用逻辑

4. 请求和响应体

使用utf-8编码

JSON格式

如果需要加密,可以将正常的JSON加密后用base64编码

5. HTTP状态码

业务的处理结果不体现在http状态码,由响应体的错误码字段表示

只是有部分http状态码表示业务无关的响应,例如

200: 业务已处理,但是处理成功还是失败由响应体表示

400: 错误的请求,多用在请求参数验证。客户端开发要保证向服务器提交正确格式的请求

401: 认证失败,一般没有token或者没有token过期

403: 没有权限调用这个接口。客户端应该隐藏用户无权限的操作

500: 服务器异常

6. 字段命名

JSON来自javascript语言,所以字段命名遵循javascript语言,使用 lowerCamelCase 小骆驼拼写法

不要使用下划线链接的 snake_case

7. 数据类型

常用数据类型映射


bool:映射为 string,使用Y表示true,N表示false

int: 映射为number

long: 映射为string,因为js的number类型能处理的数值范围不够,实际项目中会导致各种奇怪的问题

float, double, decimal: 映射为string

日期、时间:映射为string

注意:


表示ID概念的字段,统一使用string

数据传输时,如果某个字段为空值,直接省略这个字段不传,减少网络开销

响应体业务数据包含多个数据结构时,优先使用嵌套格式,例如下面这个用户创建的消息

"item": {
      "num_iid": "520813250866",
      "title": "三刃木折叠刀过安检创意迷你钥匙扣钥匙刀军刀随身多功能小刀包邮",
      "desc_short": "",
      "price": 25.8,
      "total_price": 0,
      "suggestive_price": 0,
      "orginal_price": "25.80",
      "nick": "欢乐购客栈",
      "num": "832",
      "min_num": 0,
      "detail_url": "http://item.taobao.com/item.htm?id=520813250866",
      "pic_url": "//img.alicdn.com/imgextra/i4/2596264565/TB2p30elFXXXXXQXpXXXXXXXXXX_!!2596264565.jpg",
      "brand": "三刃木",
      "brandId": "4036703",
      "rootCatId": "50013886",
      "cid": "50014822",
      "favcount": "4824",
      "fanscount": "1469",
      "crumbs": [],
      "created_time": "",
      "modified_time": "",
      "delist_time": "",

8. 响应体格式

  • code 业务处理的错误码,使用简短的能够体现错误种类的英文单词表示,使用大写字母,使用下划线分隔单词。不建议用数字表示错误码,用数字表示需要额外维护错误码表。


    28.png



相关文章
|
3月前
|
JSON 监控 API
掌握使用 requests 库发送各种 HTTP 请求和处理 API 响应
本课程全面讲解了使用 Python 的 requests 库进行 API 请求与响应处理,内容涵盖环境搭建、GET 与 POST 请求、参数传递、错误处理、请求头设置及实战项目开发。通过实例教学,学员可掌握基础到高级技巧,并完成天气查询应用等实际项目,适合初学者快速上手网络编程与 API 调用。
470 130
|
4月前
|
XML JSON API
识别这些API接口定义(http,https,api,RPC,webservice,Restful api ,OpenAPI)
本内容介绍了API相关的术语分类,包括传输协议(HTTP/HTTPS)、接口风格(RESTful、WebService、RPC)及开放程度(API、OpenAPI),帮助理解各类API的特点与应用场景。
|
6月前
|
监控 安全 API
电商API行业标准与规范体系构建:推动电商行业规范化前行
电商API行业标准与规范是推动电商高效发展的核心。通过数据格式标准化、接口设计一致性及严格的安全措施,可提升数据交互效率、保障安全并促进系统兼容性。淘宝、京东、拼多多等平台的实践展示了其重要性。未来,智能化、隐私保护强化和跨平台集成将成为主要趋势,助力电商生态持续繁荣。
|
6月前
|
人工智能 自然语言处理 API
电商API技术文档编写规范白皮书:方法论与行业实践
本文系统阐述电商API接口文档的编写规范与最佳实践,涵盖结构设计、技术语言、开发者体验、版本控制及质量保障等方面,助力企业提升开发效率,构建开放共赢的电商生态。
|
5月前
|
SQL 缓存 监控
SqlRest让SQL秒变Http API,还支持20+数据库(含国产数据库)
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
|
6月前
|
JSON 编解码 API
Go语言网络编程:使用 net/http 构建 RESTful API
本章介绍如何使用 Go 语言的 `net/http` 标准库构建 RESTful API。内容涵盖 RESTful API 的基本概念及规范,包括 GET、POST、PUT 和 DELETE 方法的实现。通过定义用户数据结构和模拟数据库,逐步实现获取用户列表、创建用户、更新用户、删除用户的 HTTP 路由处理函数。同时提供辅助函数用于路径参数解析,并展示如何设置路由器启动服务。最后通过 curl 或 Postman 测试接口功能。章节总结了路由分发、JSON 编解码、方法区分、并发安全管理和路径参数解析等关键点,为更复杂需求推荐第三方框架如 Gin、Echo 和 Chi。
|
9月前
|
JSON API 网络架构
HTTP常见的请求方法、响应状态码、接口规范介绍
本文详细介绍了HTTP常见的请求方法、响应状态码和接口规范。通过理解和掌握这些内容,开发者可以更好地设计和实现W
1361 83
|
5月前
|
监控 安全 测试技术
从0到1构建电商API:如何用规范设计省下百万维护成本?
本文系统解析电商API接口开发全流程,涵盖需求分析、架构设计、安全实践、测试上线及文档维护等关键环节,结合技术规范与实际案例,助力构建高可用、可扩展的电商系统。
|
5月前
|
缓存 供应链 监控
1688开放平台深度解析:商品详情API调用规范与性能优化策略
1688商品详情接口(alibaba.product.get)提供标准化数据获取方案,支持50+字段,涵盖商品基础信息、SKU详情、价格库存、图文视频资源。适用于电商比价、供应链管理、竞品分析及跨境信息同步,助力企业提升采购效率与市场响应速度。提供Python调用示例及常见问题解决方案,推荐使用本地缓存、异常重试机制和保险服务优化调用体验。
|
11月前
|
JSON Cloud Native API
API 规范和设计
今天主要和大家分享的是如何给予 Open API 3.0 标准来设计一套 API 规范。那么整体我们在讲的过程中,大约有以下五方面。 1. 大环境介绍 2. API与服务开放 3. API定义 4. 模型 5. 总结
1004 5