: Architectural style that parallels and informs the design of HTTP/1.1
2. REST Constraints
1) Client-Server: Separation of concerns, user interface and data storage
(+) improves portability of user interface, improves scalability by simplifying server
2) Stateless: no context is stored on the server
(+) improves visibility, reliability, scalability
(-) increases overhead
3) Cache
(+) allows some interactions to be eliminated and reduces average latency
(-) stale data reduces reliability
4) Layered system
(+) improves scalability (load balancing)
(-) adds latency and overhead
5) Uniform Interface
(+) encourages independent evolvability
(-) Degrades efficiency
6) Code on demand (optional)
http://whatisrest.com/rest_constraints/index
3. Architectural Elements
- Data Elements: Resources / Resource identifiers / Representations / Representation metadata / Control data
- Connectors: Client / Server / Cache / Resolver / Tunnel
- Components: Origin server / Gateway / Proxy / User agent
http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
4. Introduction to RESTful Web Service
1) The Richardson Maturity Model: Model of RESTful maturity
Level Zero
|
Level One
|
Level Two
|
Level Three
|
Single well-known endpoint | Multiple endpoints | Multiple endpoints, identifying resources | Multiple endpoints, identifying resources |
uses HTTP as only transport | uses HTTP as only transport | understands HTTP | understands HTTP |
No hypermedia | No hypermedia | No hypermedia | uses links to communicate protocols |
https://martinfowler.com/articles/richardsonMaturityModel.html
2) HATEOAS: Hypermedia As The Engine Of Application State
https://medium.freecodecamp.com/restful-services-part-iii-hateoas-and-the-richardson-maturity-model-48d4e4c79b8d#.vdqz8mwh3
댓글 없음:
댓글 쓰기