简述RESTFul风格的API接口

[复制链接]
发表于 2026-1-7 20:18:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
目次
传统的风格API
 REST风格
谓词规范
 URL下令规范
制止多级URL
幂等
CURD的接口计划
REST相应
相应乐成返回的状态码
 重定向
错误代码
客户端
服务器
RESTful的返回格式
返回格式

从上一篇文章我们已经开端知道了怎么在VS中创建一个webapi项目。这篇文章来探究一下啊什么是RESTFult风格的API接口。
传统的风格API

加入要获取单个用户——>/User/GetUser
对用户举行更新——>/User/UpdateUser
删除用户——>/User/DeleteUser
然后我去查阅资料,发现接口文档都有一下特性
   1、接口Url所在;
  2、Post、Get哀求方式
  3、哀求参数
  4、返回参数
  5、返回格式:Json、Xml、Text等。
  假如不是团队开发,自己写一写实在也还好,只要看得懂就行。
但是团队开发,都会有一套规范。这套规范去束缚了我们
   1.使用Get、Add、Update、Delete开头用来下令API接口,体现获取、插入、更新、删除的利用。
  2.携带参数指定返回的格式,?type=json体现返回json格式,?type=xml体现返回xml格式。等。
   REST风格

   REST,即Representational State Transfer的缩写,翻译成中文”体现层状态转化。
   详细如下:
1)资源,每一个资源都有指定的URL,要对资源举行利用,都是访问这个URL。
2)体现层,返回给前端的内容格式,是json,xml照旧html等
   1、?type=json体现返回json格式,?type=xml体现返回xml格式。
  2、xxx.html体现返回html格式。
  3、xxx.png体现返回png。
  在REST界说里,应该在HTTP哀求的头信息内里:Accept和Content-Type,这两个字段才是用来形貌“体现层”的返回格式。
3)状态转化,对资源举行利用,就是状态转化,在REST里,用HTTP协议的谓词来体现,比如
   GET、POST、PUT、DELETE,分别体现获取资源、新建资源、更新资源、删除资源。
  说了这么多界说,REST风格的接口是有如下规范
谓词规范

   1、GET 获取资源;
  2、POST 新建/插入/添加资源;
  3、PUT 更新资源(更新全部字段);
  4、DELETE 删除资源;
  5、PATCH 部门更新资源部门字段。
   URL下令规范

   REST中的URL,必须是名词
   比如
  1. GET        /Users/Id        //获取用户
  2. GET        /Users            //获取用户列表
  3. POST      /Users       //添加用户
  4. PUST       /Users/Id      //更新用户
  5. DELETE    /Users/ID     //删除用户
复制代码
制止多级URL

也就是防止出现多个/,针对必要较多过滤信息的,可以通过API的参数情势,过滤返回结果。
幂等

   在REST也是有明确规定的。
  1、安全、幂等:GET、HEAD、OPTIONS。
  2、非安全、非幂等:POST、PUT、DELETE、PATCH。
  CURD的接口计划

   在REST对CRUD有了明确的规范界说,但是我们实际业务体系黑白常复杂的,每每REST是无法满意我们的要求的。这个时间必要根据业务逻辑去抽取对外的接口。
  REST相应

相应乐成返回的状态码

   GET: 200 OK
  POST: 201 Created
  PUT: 200 OK
  PATCH: 200 OK
  DELETE: 204 No Content
   重定向

302会自动跳转,303不会自动跳转。
错误代码

客户端

   400 Bad Request:服务器不明确客户端的哀求,未做任那里理。
  404 Not Found:所哀求的资源不存在,或不可用。
  401 Unauthorized:用户未提供身份验证根据,大概没有通过身份验证。
  403 Forbidden:用户通过了身份验证,但是不具有访问资源所需的权限。
  405 Method Not Allowed:用户已经通过身份验证,但是所用的 HTTP 方法不在他的权限之内。
  410 Gone:所哀求的资源已从这个所在转移,不再可用。
  415 Unsupported Media Type:客户端要求的返回格式不支持。比如,API 只能返回 JSON 格式,但是客户端要求返回 XML 格式。
  422 Unprocessable Entity :客户端上传的附件无法处理处罚,导致哀求失败。
  429 Too Many Requests:客户端的哀求次数凌驾限额。
  服务器

   500 :哀求正常,但是服务器发送非常。
  503:服务器无法处理处罚,处于维护状态。
  RESTful的返回格式

   API返回数据不能使用纯文本方式,应该是布局化的,最好是接纳JSON格式。
  以是相应HTTP头Content-Type指定application/json,通用的哀求头ACCEPT也要设置为application/json。
  返回格式

单个对象
   {
  id:1
  name:“dd”
  }
   多个对象
   [
  {
  id:1
  name:“dd”
  },
  {
  id:2
  name:“dd”
  }
  ]
   多个对象带信息
   {
  [
  ]
  其他信息
  }
   错误信息
   {
  "code": "InvalidToken",
  "message": "授权逾期"
  }
  好了本日的分享就到这里。 也接待必要的人关注我的公号,内里不定期分享内容。感谢。
渴望对你有所资助。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表