24 From: Stefan Tilkov – Microservices: Patterns and Antipatterns Data Domain Logic CRUD via HTTP / JDBC in disguise Spring Data REST / Re-usable, but low-level
24 From: Stefan Tilkov – Microservices: Patterns and Antipatterns Data Domain Logic Process Flow CRUD via HTTP / JDBC in disguise Spring Data REST / Re-usable, but low-level Useful and specific
25 Data Domain Logic Process Flow Presentation From: Stefan Tilkov – Microservices: Patterns and Antipatterns CRUD via HTTP / JDBC in disguise Spring Data REST / Re-usable, but low-level Useful and specific
51 Method URI Action Step POST /orders Create new order 1 POST/PATCH /orders/{id} Update the order (only if "payment expected") 2 DELETE /orders/{id} Cancel order (only if "payment expected") 3 PUT /orders/{id}/payment Pay order (only if "payment expected") 4 Barista preparing the order GET /orders/{id} Poll order state 5 GET /orders/{id}/receipt Access receipt DELETE /orders/{id}/receipt Conclude the order process 6
Method URI Action Step POST /orders Create new order 1 POST/PATCH /orders/{id} Update the order (only if "payment expected") 2 DELETE /orders/{id} Cancel order (only if "payment expected") 3 PUT /orders/{id}/payment Pay order (only if "payment expected") 4 Barista preparing the order GET /orders/{id} Poll order state 5 GET /orders/{id}/receipt Access receipt DELETE /orders/{id}/receipt Conclude the order process 6 59
60 Method Resource type Action Step POST orders Create new order 1 POST/PATCH update Update the order 2 DELETE cancel Cancel order 3 PUT payment Pay order 4 Barista preparing the order GET order Poll order state 5 GET receipt Access receipt DELETE receipt Conclude the order process 6
64 Amount of domain knowledge in the client Amount of protocol knowledge in the client Coupling to the server Non-hypermedia based systems Hypermedia based systems
66 Architectural Styles and the Design of Network-based Software Architectures Fielding – Dissertation PDF Evolving Distributed Systems Gierke – Blog Microservices: Patterns and Antipatterns Tilkov – Slide deck @ Speakerdeck Fundamentals of Object-oriented Design in UML Meilir Page-Jones, 2000 – Book @ Amazon The Grand Unified Theory Jim Weirich, 2009 – Video @ YouTube
REST In Practice Parastatidis, Webber, Robinson – Book @ O'Reilly Spring RESTBucks Drotbohm – Code @ GitHub Spring HATEOAS Project website Spring REST Docs Project website Spring Cloud Contract Project website 67