RESTful API 设计详解

RESTful 是一种软件架构风格,其面向资源。基于 HTTP 协议实现。

设计概念和准则

  • 所有事物都可以被抽象为资源。
  • 每一个资源都有唯一的资源标识,对资源的操作不会改变这些标识。
  • 所有操作都是无状态的。

请求方法

  • get 获取
  • post 附加新的资源 (新建)
  • head 请求获取由 REQUEST-URI 所标识的资源的响应信息报头
  • put 请求服务器存储一个资源,并用 REQUEST-URI 作为其标识(更新)
  • delete 请求服务器删除 REQUEST-URI 所标识的资源
  • options 请求查询服务器的性能,或者查询与资源相关的选项与需求

常用状态码

  • 200 OK
  • 400 Bad Request 客户端请求有语法错误,不能被服务器理解
  • 401 Unauthorized 服务器受到请求,但拒绝提供服务
  • 404 Not Found
  • 500 Internal Server Error 服务器不可预期的错误
  • 503 Server Unavailable 服务器当前不能处理客户端的请求

设计要素

资源路径 URI

每个网址代表一种资源,网址中不能有动词,只能是名词,名词应该是复数

HTTP 动词

get、post, etc

过滤信息

url?offset=10

状态码

错误处理

{
  "error":"错误信息"
}

返回结果

More Information

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏文大师的新世界

3. spring security & oauth2

解释看代码字面意思就懂了,没什么特殊的,还可以修改比如登录表单里的用户名和密码的名字,还可以添加各种登录成功之后的handler等等,写法都一样。

24820
来自专栏杂烩

spring安全框架Security(二) 转

首先是<security:authentication-manager>是指定我们自定义的身份验证策略,这里我们用customUserDetailsServ...

11430
来自专栏python学习指南

python爬虫(七)_urllib2:urlerror和httperror

urllib2的异常错误处理 在我们用urlopen或opener.open方法发出一个请求时,如果urlopen或opener.open不能处理这个respo...

24880
来自专栏一场梦

Servlet HTTP 状态码大全列表

13530
来自专栏V站

Servlet HTTP 状态码大全列表

状态行包括 HTTP 版本(在本例中为 HTTP/1.1)、一个状态码(在本例中为 200)和一个对应于状态码的短消息(在本例中为 OK)。

17020
来自专栏软件开发

HTML5 学习总结(三)——本地存储(localStorage、sessionStorage、WebSqlDataBase、IndexedDB)

HTML5问世以后,前端加入了一个重要的功能,便是本地存储,本地存储可分为4类: Local Storage:总的存储量有所限制,并不能提供真正的检索API,数...

716100
来自专栏battcn

一起来学SpringBoot | 第十五篇:actuator与spring-boot-admin 可以说的秘密

一起来学SpringBoot | 第十四篇:强大的 actuator 服务监控与管理 中介绍了 actuator 的作用,细心的朋友可能会发现通过 http r...

19820
来自专栏Java学习123

HTTP协议详解

62370
来自专栏Ryan Miao

SpringMVC,SpringBoot文件下载

前言 最近严查security, 导致原来暴露出去的s3不能用了,不允许public的s3,暂时的折中方案是自己做跳转。于是需要在SpringMVC中实现文件...

37750
来自专栏技术博文

http状态码一览表

http状态码一览表 1**:请求收到,继续处理 2**:操作成功收到,分析、接受 3**:完成此请求必须进一步处理 4**:请求包含一个错误语法或不能完成 5...

38670

扫码关注云+社区

领取腾讯云代金券