news 2026/11/4 7:57:45

Restful接口设计

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Restful接口设计

API分类

  1. A程序需要B程序的部分功能,只需要将B程序部分功能打包交给A程序直接使用,比如Java jar,这种API一般称为SDK。
  2. A程序/项目需要B程序/项目的部分功能,只需要B对外提供访问路径/入口,A按照约定好的访问方式进行访问,即可实现对象的功能,这种API称为应用接口

Restful规范产生原因

客户端不仅限于PC端,浏览器、移动APP、小程序等等,这就要求服务端能提供统一的API接口,不同类型的客户端基于相同的协议或规则就能来调用该API接口,并获取预期的数据。

Restful约定

请求路径

针对接口要操作资源统一使用复数路径,一般就是操作实体对象复数,如/employees

请求方法

GET (select):从服务器获取出资源(一项/多项)

POST (create): 在服务器新建添加资源。

PUT (update): 在服务器更新修改资源。客户端提供改变后的完整资源,PUT 更新整个对象。

Patch (update): 在服务器更新资源,客户端提供改变的属性,PATCH更新个别属性

DELETE (delete):从服务器删除资源

请求参数

由需求决定

请求响应

GET :单个资源→→单个资源对象;多个资源→→数组

POST:→→新生成的资源对象

PUT:→→完整的资源对象

PATCH:→→完整的资源对象

DELETE:→→空文档

真实开发具体响应什么以公司规定/操作需求为主,一般建议响应格式为JSON格式

HTTP响应状态码

1xx信息

请求已接收,请继续处理

2xx成功

请求正常处理完毕

200 OK [GET] 请求成功,服务器成功返回用户请求的数据。

201 CREATED [put/post/patch]数据创建或修改成功。

202 Accepted 表示一个请求已经进入后台排队(异步任务)

204 No Content [delete ]删除成功。请求成功,不返回数据

206 partition content部分内容返回,常用于断点续传

3xx重定向

301 Moved Permanently 永久重定向。(如某网站域名永久迁移到新地址)

302 Found 临时重定向

304 Not Modified 资源未更新,缓存命中,使用本地缓存。(节省带宽)

4xx客户端错误

400 Bad Request 请求参数有问题,如参数格式错误或缺少必要字段。

401 Unauthorized 未认证,未登录/登录信息失效。(没身份)

403 forbidden 已认证但没有权限,有身份但没资格(如普通用户想访问管理员接口)

404 Not found 资源不存在,访问了一个不存在的接口或页面

405 Method Not Allowed 请求方式错误。(比如接口需要post请求,但你发送了get请求)

406 Not Acceptable [GET]用户请求的格式不可得。(如请求JSON格式,但只有X mail格式)

410 Gone [GET] 用户请求的资源被永久删除,且不会再得到了

422 Unprocessableentity [post/put/patch] 当创建一个对象时,发生验证错误

429 Too many requests 请求过于频繁,通常出现在限流场景

5xx服务端错误

500 Internal Server Error 服务器内部异常。(代码报错/空指针/数据库异常)

501 Not Implemented 服务端不支持当前请求功能。

502 Bad Gateway 网关错误。常见于Nginx转发请求时后端服务挂了或返回异常。

503 Service, unavailable 服务不可用。系统维护/服务过载/熔断降级。

504 Gateway Timeout 网关超时请求已发送给后端,但长时间未响应

资源表现形式

比如,文本可以用txt格式表现,也可以用HTML格式、XML格式、JSON格式表现,甚至可以采用二进制格式;图片可以用IPG格式表现也可以用PNG格式表现。
它的具体表现形式,应该在HTTP请求的头信息中用Accept和Content-Type字段指定,这两个字段才是对"表现"的描述。
accept:application/json
content-type:application/ison

Accept与content-Type的区别

  1. Accept属于请求头 ,content-Type属于实体头。Http报头分为通用报头,请求报头,响应报头和实体报头。请求方的http报头结构:通用报头|请求报头|实体报头响应方的http报头结构:通用报头|响应报头|实体报头.
  2. Accept代表发送端(客户端)希望接受的数据类型。比如:Accept :application/ison;代表客户端希望接受的数据类型是ison类型,后台返回ison数据。Content-Type代表发送端(客户端|服务器)发送的实体数据的数据类型。比如:content-Type :application/json;代表发送端发送的数据格式是ison,后台就要以这种格式来接收前端发过来的数据。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/4 7:57:45

image 组件:14 种图片显示模式演示

一、案例简介本案例是微信小程序图片组件的实战练习,核心学习 image 组件的 mode 属性。小程序运行后,页面从上到下依次展示同一张图片的 14 种显示模式,每种模式配一段文字说明,滚动页面即可对比不同模式下图片的裁剪、缩放效果。…

作者头像 李华
网站建设 2026/10/17 16:03:19

AI Agent营销技能包实战:从零搭建可复用的marketingskills

1. 从"marketingskills"这个标题说起:它到底想解决什么问题第一次看到"marketingskills"这个标题,我脑子里蹦出来的不是某个具体工具,而是一类正在快速成型的东西——给 AI Agent 用的技能包。结合热搜词里那一串 Claude…

作者头像 李华
网站建设 2026/10/25 7:40:24

Altium Designer原理图与封装协同设计核心逻辑

1. 这不是“画图软件操作指南”,而是硬件工程师的原理图设计思维起点很多人第一次打开Altium Designer(AD),点开新建原理图,拖几个电阻电容,连几根线,保存——以为自己已经“会画原理图”了。但…

作者头像 李华
网站建设 2026/10/25 8:29:48

CPU与DDR3六层高速板PCB布局布线完整实战解析

最近不少硬件工程师问我:CPU 和 DDR3 放在同一块板上,到底要怎么排布才能少踩坑?市面上的资料要么只讲拓扑,要么只给等长规则,很少有把 6 层板从层叠、布局到布线完整串起来的实战演示。这次我们看的内容,正…

作者头像 李华