Spring Boot – REST API

  • Post author:
  • Post category:其他

REST API 

REST API是最常用的应用程序接口。通过它,客户端可以访问服务器和操作资源。

REST?

REST是“Representational State Transfer”的缩写,是分布式超媒体系统体系结构(如WWW)的一种形式。它的意思是在发送的资源(Resource)中指定名称,并在URI中声明,通过HTTP方法(GET、POST、PUT、DELETE)发送该资源的状态。

REST API?

API是“应用程序编程接口”的缩写,是指应用程序提供的交互。您可以通过API在服务器或程序之间进行连接,也就是说,REST API可以看作是遵循REST体系结构的系统/应用程序接口。实现REST体系结构的入口服务称为“RESTful”。

REST的特性

按需代码

Uniform Interface是指“一致的接口”,也就是说,REST服务器遵循HTTP标准传输协议,因此无论是用什么编程语言创建的,都不依赖于平台和技术,可以与其他语言、平台和技术兼容使用。

连接协议具有无状态性

REST是“无状态(stateless)”“无状态性”是指服务器不单独存储或管理状态信息。服务器不会为客户端发送的请求单独存储会话或Cookie信息。因此,无论是一个客户端发送多个请求,还是多个客户端分别发送一个请求,都会分别进行处理。配置的服务具有更高的业务逻辑自由度和更简单的设计,因为服务器不管理不必要的信息。

能够利用Cache机制增进性能

REST仍然使用HTTP标准,因此可以应用HTTP的缓存功能。为了使用此功能,响应和请求都需要指定是否可缓存(Cacheable)。如果可以缓存,客户机将其保存在缓存中,并将其数据用于相同的请求。使用此功能可以减轻服务器的事务负载,提高效率,改善用户的性能。

层次化的系统

REST服务器可以由网络上的多个层组成(Layered System),但无论服务器的复杂程度如何,客户端只需知道与服务器连接的点即可。

客户端和服务器结构

REST服务器提供API,客户端以管理用户信息的结构进行分离设计。此配置具有降低彼此依赖性的功能。

REST中的URI设计规则

URI的最后不包含“/”

  • 正确示例)http://ocalhost.com/product
  • 错误示例)http://ocalhost.com/product/

不使用Underbar(_),而是使用连字符(-)

  • 如果资源名称过长会使用连字符
  • 正确示例)http://ocalhost.com/provider-company-name
  • 错误示例)http://localhost.com/provider_company_name

URL包含结果(名词),而不是行为(动词)

  • 正确示例)http://localhost.com/product/123
  • 错误示例)http://localhost.com/delete-product/123
  • 行为必须可以用HTTP方法表示

URI必须小写

  • 建议避免在URI资源路径中使用大写字母
  • 因为某些简单服务器的操作系统将资源路径部分的大小写识别为其他字符。因此,RFC3986定义了URI语法格式,除主机的组件外,还定义了URI的大小写

UR不包含文件扩展名

  • 建议使用HTTP提供的Accept标头

 


版权声明:本文为Java_1710原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。