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...

Full description

Bibliographic Details
Main Authors: Lanthaler, Markus, Guetl, Christian
Other Authors: Leslie Car et al
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