RESTful风格介绍和使用教程

1 什么是RESTful

资源 (Resources)
网络上的一个实体,或者说是网络上的一个具体信息,并且每个资源都有一个独一无二得URI与之对应;获取资源-直接访问URI即可

  • 表现层(Representation)
    如何去表现资源 - 即资源得表现形式;如HTML , xml , JPG , json等
  • 状态转化(State Transfer)
    访问一个URI即发生了一次 客户端和服务端的交互;此次交互将会涉及到数据和状态得变化
    客户端需要通过某些方式触发具体的变化 - HTTP method 如 GET, POST,PUT,PATCH,DELETE 等

2 RESTful的特征

  • 每一个URI代表一种资源

  • 客户端和服务器端之前传递着资源的某种表现

  • 客户端通过HTTP的几个动作 对 资源进行操作 - 发生‘状态转化’

3 RESTful 架构的特点有哪些?

  • 无状态性:每次请求都是独立的,服务器不会保留关于客户端的会话信息。
  • 统一接口:使用统一的方式和格式进行资源的访问和操作,包括使用标准的 HTTP 方法(GET、POST、PUT、DELETE)和状态码。
  • 资源导向:将系统的功能抽象为资源,通过 URI 进行资源的定位和访问。
  • 可缓存性:支持对资源进行缓存,提高性能和可扩展性。

4 RESTful 架构与 SOAP 的区别是什么?

  • RESTful 架构是一种基于 HTTP 协议的轻量级架构风格,注重资源的表达和状态的转移。而 SOAP 是一种基于 XML 的通信协议,更复杂且灵活,支持多种传输协议。

4 RESTful 架构的优点是什么?

  • 简化了分布式系统的开发和集成。
  • 提高了可伸缩性和性能,通过缓存和负载均衡等机制。
  • 支持多种客户端和服务器之间的松耦合。
  • 提供了语言和平台无关性,易于实现跨平台的服务调用。

5 如何设计符合RESTful 特征的API

  • 协议 - http/https

  • 域名
    域名中体现出api字样,如
    https://api.example.com
    or
    https://example.org/api/

  • 版本:
    https://api.example.com/v1/

  • 路径 -
    路径中避免使用动词,资源用名词表示,案例如下

https://api.example.com/v1/users
https://api.example.com/v1/animals
请求动词说明
GET(SELECT从服务器取出资源(一项或多项)
POST(CREATE)在服务器新建一个资源
PUT(UPDATE)在服务器更新资源
DELETE(DELETE)从服务器删除资源

具体案例如下:

请求动作请求资源说明
GET/zoos列出所有动物园
POST/zoos创建一个动物园
GET/ZOOS/ID获取某个指定动物园的消息
PUT/ZOOS/ID获取某个指定动物园的消息
DELETE/ZOOS/ID.删除某个动物园
GET/zoos/animals列出某个指定动物园的所有动物
DELETE/zoos/ID删除某个指定动物园的指定动物
  • 巧用查询字符串
?type_id=1:指定筛选条件
?limit=10:指定返回记录的数量
?offset=10:指定返回记录的开始位置。
?page=2&per_page=100:指定第几页,以及每页的记录数。
  • 状态码
    用HTTP响应码表达 此次请求结果,例如
响应码说明
200 OK - [GET]服务器成功返回用户请求的数据
404 NOT FOUND - [GET]用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的
500 INTERNAL SERVER ERROR -服务器发生错误
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学废Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值