Conference paper Open Access

From OpenAPI Fragments to API Pattern Primitives and Design Smells

Serbout, Souhaila; Pautasso, Cesare; Zdun, Uwe; Zimmermann, Olaf

Dublin Core Export

<?xml version='1.0' encoding='utf-8'?>
<oai_dc:dc xmlns:dc="" xmlns:oai_dc="" xmlns:xsi="" xsi:schemaLocation="">
  <dc:creator>Serbout, Souhaila</dc:creator>
  <dc:creator>Pautasso, Cesare</dc:creator>
  <dc:creator>Zdun, Uwe</dc:creator>
  <dc:creator>Zimmermann, Olaf</dc:creator>
  <dc:description>In the past few years, the OpenAPI Specification (OAS) has emerged
as a standard description language for accurately modeling Web
APIs. Today, thousands of OpenAPI descriptions can be found by
mining open source repositories. In this paper, we attempt to exploit
these artifacts to extract commonly occurring building blocks used
inWeb API structures, in order to assistWeb API designers in their
modelling task. Our work is based on a fragmentation mechanism,
that starts from OpenAPI descriptions ofWeb APIs to extract their
structures, then fragment these structures into smaller blocks. This
approach enabled us to extract a large dataset of reoccurring fragments
from a collection of 6619 API specifications. Such fragments
have been found multiple times in the same or across different APIs.
We have classified the most reoccurring fragments into four pattern
primitives used to expose in the API access to collections of items.
We distinguish for each primitive variants from design smells. This
classification is based on the specific combinations of operations
associated with the collection items and on an in-depth analysis of
their natural language labels and descriptions. The resulting pattern
primitives are intended to support designers who would like to introduce
one or more collections for a specific class of items in their
HTTP-based API.</dc:description>
  <dc:relation>info:eu-repo/grantAgreement/SNSF/Project funding - Project funding (Div. I-III)/200021L_184692/</dc:relation>
  <dc:subject>Application Programming Interfaces</dc:subject>
  <dc:subject>API Patterns</dc:subject>
  <dc:subject>API Design Smells</dc:subject>
  <dc:subject>API Structural Fragments</dc:subject>
  <dc:subject>Pattern Minning</dc:subject>
  <dc:title>From OpenAPI Fragments to API Pattern Primitives and Design Smells</dc:title>
Views 69
Downloads 93
Data volume 319.5 MB
Unique views 64
Unique downloads 88


Cite as