Model Your Application Domain, Not Your JSON Structures
Creating truly RESTful Web APIs is still more an art than a science. Developers have to struggle with a number of complex design decisions because concrete guidelines and processes are missing. Consequently, often it is decided to implement the simplest solution which is, most of the time, to rely o...
| Main Authors: | , |
|---|---|
| Other Authors: | |
| Format: | Conference Paper |
| Published: |
ACM
2013
|
| Subjects: | |
| Online Access: | http://www2013.org/papers/companion.htm#24 http://hdl.handle.net/20.500.11937/2724 |
| _version_ | 1848744030864670720 |
|---|---|
| author | Lanthaler, Markus Guetl, Christian |
| author2 | Leslie Car et al |
| author_facet | Leslie Car et al Lanthaler, Markus Guetl, Christian |
| author_sort | Lanthaler, Markus |
| building | Curtin Institutional Repository |
| collection | Online Access |
| description | Creating truly RESTful Web APIs is still more an art than a science. Developers have to struggle with a number of complex design decisions because concrete guidelines and processes are missing. Consequently, often it is decided to implement the simplest solution which is, most of the time, to rely on out-of-band contracts between the client and the server. Instead of properly modeling the application domain, all the effort is put in the design of proprietary JSON structures and URLs. This then forms the base for the contract which is communicated in natural-language (with all its ambiguity) to client developers. Since it is the server who owns the contract it may be changed at any point, which, more often than not, results in broken clients. In this position paper, we discuss some of the challenges and choices that need to be made when designing RESTful Web APIs. In particular, we compare how contracts are supposed to be established and how they are defined in practice. We illustrate the problems that are the cause of these divergences. As a first step to address these issues we describe and motivate an alternative, domain-driven approach to design Web APIs. |
| first_indexed | 2025-11-14T05:54:59Z |
| format | Conference Paper |
| id | curtin-20.500.11937-2724 |
| institution | Curtin University Malaysia |
| institution_category | Local University |
| last_indexed | 2025-11-14T05:54:59Z |
| publishDate | 2013 |
| publisher | ACM |
| recordtype | eprints |
| repository_type | Digital Repository |
| spelling | curtin-20.500.11937-27242017-02-28T01:25:24Z Model Your Application Domain, Not Your JSON Structures Lanthaler, Markus Guetl, Christian Leslie Car et al Hydra HTTP Web APIs Web JSON-LD Web services contracts Linked Data REST domain-driven design distributed systems Creating truly RESTful Web APIs is still more an art than a science. Developers have to struggle with a number of complex design decisions because concrete guidelines and processes are missing. Consequently, often it is decided to implement the simplest solution which is, most of the time, to rely on out-of-band contracts between the client and the server. Instead of properly modeling the application domain, all the effort is put in the design of proprietary JSON structures and URLs. This then forms the base for the contract which is communicated in natural-language (with all its ambiguity) to client developers. Since it is the server who owns the contract it may be changed at any point, which, more often than not, results in broken clients. In this position paper, we discuss some of the challenges and choices that need to be made when designing RESTful Web APIs. In particular, we compare how contracts are supposed to be established and how they are defined in practice. We illustrate the problems that are the cause of these divergences. As a first step to address these issues we describe and motivate an alternative, domain-driven approach to design Web APIs. 2013 Conference Paper http://hdl.handle.net/20.500.11937/2724 http://www2013.org/papers/companion.htm#24 ACM restricted |
| spellingShingle | Hydra HTTP Web APIs Web JSON-LD Web services contracts Linked Data REST domain-driven design distributed systems Lanthaler, Markus Guetl, Christian Model Your Application Domain, Not Your JSON Structures |
| title | Model Your Application Domain, Not Your JSON Structures |
| title_full | Model Your Application Domain, Not Your JSON Structures |
| title_fullStr | Model Your Application Domain, Not Your JSON Structures |
| title_full_unstemmed | Model Your Application Domain, Not Your JSON Structures |
| title_short | Model Your Application Domain, Not Your JSON Structures |
| title_sort | model your application domain, not your json structures |
| topic | Hydra HTTP Web APIs Web JSON-LD Web services contracts Linked Data REST domain-driven design distributed systems |
| url | http://www2013.org/papers/companion.htm#24 http://hdl.handle.net/20.500.11937/2724 |