REST接口规范总结

REST接口规范总结REST 接口规范总结

1 REST

REST是一种软件架构风格,如果你的接口是REST接口,那么该接口可被认为是REST风格的。
REST接口是围绕资源展开的,HTTP 的URL即资源,利用HTTP的协议,其实rest本也可以和HTTP无关,但是现在大家普遍的使用REST都是依托于HTTP协议。

2 URI语法

URI = scheme “://” authority “/” path [ “?” query ][ “#” fragment ]

scheme: 指底层用的协议,如http、https、ftp host: 服务器的IP地址或者域名 port: 端口,http中默认80 path: 访问资源的路径,就是咱们各种web 框架中定义的route路由 query: 为发送给服务器的参数 fragment: 锚点,定位到页面的资源,锚点为资源id 

3 URL路径

  • 3.1 endpoint

举例来说,有一个API提供学校的信息,包括各个班级,老师,同学的信息,则它的路径应该设计成下面这样:

 https://school/v1/classes https://school/v1/teachers https://school/v1/students 
  • 3.1 URL规则
  • 1 名词对应数据库中的表
  • 2 URL中不能有动词
  • 3 URL结尾不应该包含斜杠“/”
  • 4 正斜杠分隔符”/“必须用来指示层级关系
  • 5 使用连字符”-“来提高URL的可读性,而不是使用下划线”_”
  • 6 URL路径中首选小写字母
  • 7 URL路径名词均为复数

4 HTTP动词

对于URL资源的具体操作类型,由HTTP动词表示。
常用的HTTP动词有下面五个(括号里是对应的SQL命令)。

 GET(SELECT):从服务器取出资源(一项或多项)。 POST(CREATE):在服务器新建一个资源。 PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。 PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。 DELETE(DELETE):从服务器删除资源。 

5 资源过滤

 ?limit=10:指定返回记录的数量 ?offset=10:指定返回记录的开始位置。 ?page=2&per_page=100:指定第几页,以及每页的记录数。 ?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。 ?teacher_subject=语文:指定筛选条件 

6 返回

返回状态码推荐标准HTTP状态码

200 OK 服务器返回用户请求的数据,该操作是幂等的 201 CREATED 新建或者修改数据成功 204 NOT CONTENT 删除数据成功 400 BAD REQUEST 用户发出的请求有问题,该操作是幂等的 401 Unauthoried 表示用户没有认证,无法进行操作 403 Forbidden 用户访问是被禁止的 422 Unprocesable Entity 当创建一个对象时,发生一个验证错误 500 INTERNAL SERVER ERROR 服务器内部错误,用户将无法判断发出的请求是否成功 503 Service Unavailable 服务不可用状态,多半是因为服务器问题,例如CPU占用率大,等等 ...... 

返回结果

GET /teachers 返回资源列表 GET /teachers/:id 返回单独的资源 POST /teachers 返回新生成的资源对象 PUT /teachers/:id 返回完整的资源对象 PATCH /teachers/:id 返回被修改的属性 DELETE /teachers/:id 返回一个空文档 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225800.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午8:31
下一篇 2026年3月17日 上午8:31


相关推荐

  • BYTE 和 COleVariant 相互转换

    BYTE 和 COleVariant 相互转换#include     BOOL GetBinaryFromVariant(COleVariant & ovData, BYTE ** ppBuf, unsigned long * pcBufLen)  {    BOOL fRetVal = FALSE;      //Binary data is stored in the variant as an array of

    2022年7月18日
    18
  • 属于iscsi使用的命令_tempadm

    属于iscsi使用的命令_tempadm[root@xifenfei~]#fdisk-lDisk/dev/sda:21.4GB,21474836480bytes255heads,63sectors/track,2610cylindersUnits=cylindersof16065*512=8225280bytesDeviceBootStartEndB…

    2022年8月23日
    10
  • icmp数据包格式

    icmp数据包格式icmp 数据报由首部和数据部分组成 ICMP 报文由首部和数据段组成 首部为定长的 8 个字节 前 4 个字节是通用部分 后 4 个字节随报文类型的不同有所差异 0 8 类型 8 16 代码 16 31 校验和 0 31 首部其他部分数据部分 Icmp 数据包报文总体分为三大类差错报告 控制报文 请求应答报文 对了顺便记录下 tcp udp 校验和都需要伪首部进行校验和 校验和校验三部分伪首部 首部 data 三部分

    2026年3月20日
    3
  • Dubbo原理解析

    Dubbo原理解析Dubbo 原理解析系列文章 http blog csdn net quhongwei zhanqiu article details

    2025年8月30日
    6
  • CRC计算器

    CRC计算器crc 计算器是一款专业的 crc 文件计算器 支持多种计算方式 支持 crc8 crc16 crc24 crc32 等类型的 crc 值计算 自定义模式下 所有 CRC 参数都可以进行手动修改 多项式 初值 异或等 是专门为 crc 值计算而生的软件 CRC 校验 循环冗余校验 小知识 CRC 即循环冗余校验码 CyclicRedund 是数据通信领域中最常用的一种查错校验码 其特征是信息字段和校验字段的长度可以任意选定 循环冗余检查 CRC 是一种数据传输检错功能 对数据进行多项式计算 并将得到的结果

    2026年3月20日
    1
  • OpenClaw (Clawdbot) 教程

    OpenClaw (Clawdbot) 教程

    2026年3月12日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号