2017년 2월 2일 목요일

Representational State Transfer

1. Representational State Transfer (REST)
 : 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

댓글 없음:

댓글 쓰기