Evaluating the RESTfulness of “APIs from the Rough”
Arne Koschel
1
, Irina Astrova
2
, Maximilian Blankschyn
1
, Dominik Schöner
1
and Kevin Schulze
1
1
Faculty IV, Department of Computer Science, Hannover University of Applied Sciences and Arts,
Ricklinger Stadtweg 120, 30459 Hannover, Germany
2
Department of Software Science, School of IT, Tallinn University of Technology, Akadeemia tee 21, 12618 Tallinn, Estonia
Keywords: REST (Representational State Transfer), RESTful, API (Application Programming Interface), Richardson
Maturity Model.
Abstract: Nowadays, REST is the most dominant architectural style of choice at least for newly created web services.
So called RESTfulness is thus really a catchword for web application, which aim to expose parts of their
functionality as RESTful web services. But are those web services RESTful indeed? This paper examines
the RESTfulness of ten popular RESTful APIs (including Twitter and PayPal). For this examination, the
paper defines REST, its characteristics as well as its pros and cons. Furthermore, Richardson's Maturity
Model is shown and utilized to analyse those selected APIs regarding their RESTfulness. As an example, a
simple, RESTful web service is provided as well.
1 INTRODUCTION
Following Roy T. Fielding, the father of the REST
architectural style, at least back in 2008, an
apparently frustrating number of APIs calling
themselves RESTful were not. Leonard Richardson
therefore introduced a maturity heuristic for REST
referred to as Richardson Maturity Model that
allows web service APIs to be grouped into different
levels of maturity.
This paper defines REST and its characteristics.
Furthermore, Richardson Maturity Model with its
four different levels is explained. This paper is an
extension of our previous work (Koschel, 2019),
where the maturity levels of ten freely accessible
RESTful APIs have been evaluated. This evaluation
is extended here by an in-depth analysis of one API,
which reaches all the levels of Richardson Maturity
Model, and another API, which does not. In
addition, the advantages, disadvantages and
challenges of creating a truly RESTful API are
explained. Subsequently, an exemplary REST
implementation based on Java Spring HATEOAS is
presented. Finally, an overall conclusion is drawn as
well as some outlook to future work.
2 RESTful API
A RESTful API is an API that uses HTTP requests
to GET, PUT, POST and DELETE data. A RESTful
API – also referred to as a RESTful web service – is
based on the REST technology, an architectural style
and approach to communications often used in web
services development.
This section discusses the characteristics of
RESTful APIs as defined by Roy T. Fielding in
2000: client-server model, stateless operations,
caching, uniform interface, layered system and code
on demand (Fielding, 2000). He formulated these
characteristics as constraints that describe what
REST is at different maturity levels.
2.1 Client-server Model
The first constraint concerns the introduction of the
client-server model. Since it is the basis for almost
all network applications, this constraint can be
considered implicit. It states that a distinction is
made between a client and a server, whereby the
client makes requests to the server; the server in its
turn offers a certain service, receives the request
from the client and responds to the request. It
follows from this model that the client and the server
are largely independent and can therefore be
developed independently of each other.
Koschel, A., Astrova, I., Blankschyn, M., Schöner, D. and Schulze, K.
Evaluating the RESTfulness of “APIs from the Rough”.
DOI: 10.5220/0008166802810288
In Proceedings of the 15th International Conference on Web Information Systems and Technologies (WEBIST 2019), pages 281-288
ISBN: 978-989-758-386-5
Copyright
c
2019 by SCITEPRESS – Science and Technology Publications, Lda. All rights reserved
281