- Hands-On Full Stack Development with Spring Boot 2.0 and React
- Juha Hinkula
- 266字
- 2021-06-25 21:00:25
Basics of REST
REST (Representational State Transfer) is an architectural style for creating web services. REST is not standard, but it defines a set of constraints defined by Roy Fielding. The six constraints are the following:
- Stateless: The server doesn't hold any information about the client state.
- Client server: The client and server act independently. The server does not send any information without a request from the client.
- Cacheable: Many clients often request the same resources, therefore it is useful to cache responses in order to improve performance.
- Uniform interface: Requests from different clients look the same. Clients may be, for example, a browser, a Java application, and a mobile application.
- Layered system: REST allows us to use a layered system architecture.
- Code on demand: This is an optional constraint.
The uniform interface is an important constraint and it defines that every REST architecture should have following elements:
- Identification of resources: There are resources with their unique identifiers, for example, URIs in web-based REST services. REST resources should expose easily understood directory structure URIs. Therefore, a good resource naming strategy is very important.
- Resource manipulation through representation: When making a request to a resource, the server responds with a representation of the resource. Typically, the format of the representation is JSON or XML.
- Self descriptive messages: Messages should have enough information that the server knows how to process them.
- Hypermedia and the Engine of Application State (HATEOAS): Responses can contain links to other areas of service.
The RESTful web service that we are going to develop in the following topics follows the REST architectural principles.
推薦閱讀
- Android Studio Essentials
- C語言程序設計實踐教程
- 教孩子學編程:C++入門圖解
- PySide GUI Application Development(Second Edition)
- Learning FuelPHP for Effective PHP Development
- 數據科學中的實用統計學(第2版)
- Getting Started with Electronic Projects
- 讓Python遇上Office:從編程入門到自動化辦公實踐
- Kohana 3.0 Beginner's Guide
- 數據結構與算法詳解
- Oracle Database 12c DBA官方手冊(第8版)
- Python 3.8編程快速入門
- Programming MapReduce with Scalding
- 計算機信息技術實踐教程
- 數據分析從入門到進階