REST(Representational State Transfer)是一种基于HTTP协议的软件架构风格,是一种面向资源的Web服务开发模式。REST风格的API设计以资源为中心,通过HTTP协议的GET、POST、PUT、DELETE等方法来对资源进行操作,使得API的设计更加简单、灵活、可扩展。
优点 :隐藏资源的访问行为,无法通过地址得知对资源是何种操作并且能简化书写。
REST的核心特点包括:
- 客户端-服务器架构:客户端与服务器之间的交互是通过HTTP协议进行的,客户端不需要知道服务器的实现细节,只需要遵循HTTP协议即可。
- 无状态:服务器不会保存客户端的任何状态信息,客户端每次请求都需要携带完整的请求信息,这样可以降低服务器的负担,也使得API更加可扩展。
- 资源导向:REST的核心是资源,每个资源都有一个唯一的标识符,客户端通过访问这个标识符来对资源进行操作。
- 统一接口:REST使用统一的接口,包括HTTP方法、URI、MIME类型等,使得API的设计更加简单、清晰、易于理解。
- 分层系统:REST的架构是分层的,每个层都有自己的责任和职能,这使得系统更加灵活、可扩展、易于维护。 REST风格的API设计需要遵循以上特点,通过合适的URI命名、HTTP方法的使用、状态码的返回等方式来定义API的行为。同时,REST风格的API还需要考虑安全性、性能、可扩展性等问题,以实现更好的用户体验和系统性能。
-
使用场景
- GET方法:
- 用于获取资源,不会对资源进行修改。
- 在URL中添加参数,查询指定资源或资源集合。
- 请求的参数会暴露在URL中,不太安全,适用于获取公开信息。
- POST方法:
- 用于创建资源或提交数据,可能会对资源进行修改。
- 在请求体中添加数据,创建新的资源或提交数据进行处理。
- 请求的参数不会暴露在URL中,相对更安全,适用于提交私密信息。
- PUT方法:
- 用于更新资源,会完全替换原有资源。
- 在请求体中包含完整的新资源,用于替换原有资源。
- 请求的参数不会暴露在URL中,相对更安全,适用于更新私密信息。
- DELETE方法:
- 用于删除资源。
- 在URL中指定要删除的资源,服务器进行删除操作。
- 请求的参数会暴露在URL中,不太安全,适用于删除公开信息。
-