RESTful接口规范参考

介绍

  • REST(Representational State Transfe),一种架构设计风格,而不是强制标准,主要用于客户端与服务端接口规范;
  • 在现代的软件开发中,RESTful API已经成为应用程序之间通信的重要桥梁,互联网公司也更倾向于实践此风格;
  • 核心是面向资源,每个网址代表一种资源(URI),具有解释性;
  • 行为(GET / POST / PUT / PATCH / DELETE)与资源(URI)分离,更加轻量;
  • 数据描述简单,使⽤JSON、XML、PROTOBUFFER即可全覆盖,主要使⽤JSON;

设计规范

  • 安全

API与⽤户的通信协议,⼀般使⽤HTTP协议,更安全情况下使⽤HTTPS;

  • 域名

应该尽量将API部署在专⽤域名之下,比如api.example.com

  • 版本

在每个API对应的URL中,应有⼀个版本号,以便将来服务升级后,所有版本的客户端可以正常使用,例如/api/v1/xxx

  • 命名

核心是面向资源,每个网址代表一种资源,网址中尽量使用名词,避免动词。

资源对应的是数据库中的集合,所以名词尽量使用复数,除非没有合适的复数形式(如 weather)。

  • 请求方式
请求方式 示例 说明
GET /teams/{id} 读取
POST /teams 新建,通常带有 Body
PUT /teams/{id} 更新,全量更新,通常带有 Body
PATCH /teams/{id} 更新,部分更新,通常带有 Body
DELETE /teams/{id} 删除

行业参考

  • 佳明接口文档

https://developers.strava.com/playground/#/

最佳实践

GET

读取。

示例:

basic 复制代码
get /teams # 获取车队列表
get /teams/list # 同上,获取车队列表
get /teams?page=1&size=10&search=武汉 # 分页搜索列表

get /teams/{id} # 获取车队id为{id}的详情
get /teams/{id}/detail # 同上,获取车队id为{id}的详情

get /teams/{id}/members # 获取车队id为{id}下的成员列表

POST

新建。

一个参数可放在路径参数,多个参数必须放到 body 中。

示例:

basic 复制代码
post /teams/{name} # 新建车队,仅有名称

post /teams # 新建车队
# body
{
"name": "武汉车队",
"number": 8888
}

PUT

更新。

put 通常指全部更新,patch 通常指部分更新,一搬支持 put 即可。

示例:

basic 复制代码
put /teams/{id} # 修改车队id为{id}的信息
# body
{
"id": 123,
"name": "武汉车队Plus",
"number": 9999
}

DELETE

删除。

示例:

basic 复制代码
delete /teams/{id} # 删除车队id为{id}的车队
相关推荐
考虑考虑19 分钟前
Postgerssql格式化时间
数据库·后端·postgresql
Chan1631 分钟前
【智能协同云图库】基于统一接口架构构建多维度分析功能、结合 ECharts 可视化与权限校验实现用户 / 管理员图库统计、通过 SQL 优化与流式处理提升数据
java·spring boot·后端·sql·spring·intellij-idea·echarts
库库林_沙琪马1 小时前
REST接口幂等设计深度解析
spring boot·后端
IT_陈寒1 小时前
Redis性能提升50%的7个关键优化策略,90%开发者都不知道第5点!
前端·人工智能·后端
智商偏低1 小时前
ASP.NET Core 身份验证概述
后端·asp.net
冷冷的菜哥1 小时前
ASP.NET Core使用MailKit发送邮件
后端·c#·asp.net·发送邮件·mailkit
canonical_entropy1 小时前
XDef:一种面向演化的元模型及其构造哲学
后端
小林coding2 小时前
再也不怕面试了!程序员 AI 面试练习神器终于上线了
前端·后端·面试
lypzcgf2 小时前
Coze源码分析-资源库-删除插件-后端源码-错误处理与总结
人工智能·后端·go·coze·coze源码分析·ai应用平台·agent平台
文心快码BaiduComate2 小时前
WAVE SUMMIT深度学习开发者大会2025举行 文心大模型X1.1发布
前端·后端·程序员