RESTful风格API个人总结

什么是RESTful API

1.是一种设计风格

2.不在URL中使用动词完成动作,比如POST addUser,GET deleteUser,GET/POST editUser,GET getUser.

提问:什么是URL?

答:URL是URI的一个子集。它是Uniform Resource Locator的缩写,译为“统一资源定位符”。
通俗地说,URL是Internet上描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上。
采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。
URL的一般格式为(带方括号[]的为可选项):
protocol :// hostname[:port] / path / [;parameters][?query]#fragment
URL的格式由三部分组成:
①第一部分是协议(或称为服务方式)。
②第二部分是存有该资源的主机IP地址(有时也包括端口号)。
③第三部分是主机资源的具体地址,如目录和文件名等。
第一部分和第二部分用“://”符号隔开,
第二部分和第三部分用“/”符号隔开。
第一部分和第二部分是不可缺少的,第三部分有时可以省略。

3.取而代之的是由HTTP动词 + URI完成动作

提问:什么是URI?

答:URI,通一资源标志符(Uniform Resource Identifier, URI),表示的是web上每一种可用的资源,如 HTML文档、图像、视频片段、程序等都由一个URI进行定位的。
URI通常由三部分组成:
①访问资源的命名机制(协议);
②存放资源的主机名(网站地址/IP);
③资源自身的名称。

提问:URL和URI区别?

答:URI和URL都定义了资源是什么,但URL还定义了该如何访问资源。URL是一种具体的URI,它是URI的一个子集,它不仅唯一标识资源,而且还提供了定位该资源的信息。URI 是一种语义上的抽象概念,可以是绝对的,也可以是相对的,而URL则必须提供足够的信息来定位,是绝对的。

提问:什么是HTTP动词?

答:类似原先的GET和POST,是动作对应的方法,表现为对URI的操作。

4.常用的五个HTTP动词:

  1. GET - 获取资源,单个或多个
  2. POST - 创建资源
  3. PUT - 更新资源,客户端提供完整的资源数据
  4. PATCH - 更新资源,客户端提供部分的资源数据
  5. DELETE - 删除资源

5.常用来构建RESTful风格api的注解

  1. @RestController 标明此Controller提供RestAPI
  2. @RequestMapping 及其变体。映射http请求url到java方法
  3. @RequestParam 映射请求参数到java方法的参数
  4. @PageableDefault 指定分页参数默认值
  5. @PathVariable 映射url片段到java方法的参数,在url声明中使用正则表达式
  6. @JsonView 控制json输出内容

6.常用HTTP状态码

200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。
201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。
202 Accepted - []:表示一个请求已经进入后台排队(异步任务)
204 NO CONTENT - [DELETE]:用户删除数据成功。
400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。
401 Unauthorized - [
]:表示用户没有权限(令牌、用户名、密码错误)。
403 Forbidden - [] 表示用户得到授权(与401错误相对),但是访问是被禁止的。
404 NOT FOUND - [
]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。
422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。
500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。

为什么RESTful Style API?

1.使用HTTP动词 + URI (v. + n. )描述动作,而非使用口语化的URL,便于理解与统一规格

2.适应前后端分离的多平台开发

3.时代需求

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式。”但是在要求详细讲述它所提出的各个约束,以及如...
    时待吾阅读 3,600评论 0 19
  • API定义规范 本规范设计基于如下使用场景: 请求频率不是非常高:如果产品的使用周期内请求频率非常高,建议使用双通...
    有涯逐无涯阅读 2,928评论 0 6
  • 去年有段时间得空,就把谷歌GAE的API权威指南看了一遍,收获颇丰,特别是在自己几乎独立开发了公司的云数据中心之后...
    骑单车的勋爵阅读 21,116评论 0 41
  • 一、什么是API? API(Application Programming Interface,应用程序编程接口)...
    Fairy_妍阅读 63,331评论 2 42
  • RESTful架构 互联网软件:即网站,一种新型的软件,采用客户端/服务器模式,建立在分布式体系上,通过互联网通信...
    零一_fb4d阅读 340评论 0 0

友情链接更多精彩内容