Conference paper Open Access

From OpenAPI Fragments to API Pattern Primitives and Design Smells

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


JSON-LD (schema.org) Export

{
  "inLanguage": {
    "alternateName": "eng", 
    "@type": "Language", 
    "name": "English"
  }, 
  "description": "<p>In the past few years, the OpenAPI Specification (OAS) has emerged<br>\nas a standard description language for accurately modeling Web<br>\nAPIs. Today, thousands of OpenAPI descriptions can be found by<br>\nmining open source repositories. In this paper, we attempt to exploit<br>\nthese artifacts to extract commonly occurring building blocks used<br>\ninWeb API structures, in order to assistWeb API designers in their<br>\nmodelling task. Our work is based on a fragmentation mechanism,<br>\nthat starts from OpenAPI descriptions ofWeb APIs to extract their<br>\nstructures, then fragment these structures into smaller blocks. This<br>\napproach enabled us to extract a large dataset of reoccurring fragments<br>\nfrom a collection of 6619 API specifications. Such fragments<br>\nhave been found multiple times in the same or across different APIs.<br>\nWe have classified the most reoccurring fragments into four pattern<br>\nprimitives used to expose in the API access to collections of items.<br>\nWe distinguish for each primitive variants from design smells. This<br>\nclassification is based on the specific combinations of operations<br>\nassociated with the collection items and on an in-depth analysis of<br>\ntheir natural language labels and descriptions. The resulting pattern<br>\nprimitives are intended to support designers who would like to introduce<br>\none or more collections for a specific class of items in their<br>\nHTTP-based API.</p>", 
  "license": "https://creativecommons.org/licenses/by/4.0/legalcode", 
  "creator": [
    {
      "affiliation": "Software Institute, USI", 
      "@type": "Person", 
      "name": "Serbout, Souhaila"
    }, 
    {
      "affiliation": "Software Institute, USI", 
      "@type": "Person", 
      "name": "Pautasso, Cesare"
    }, 
    {
      "affiliation": "University of Vienna", 
      "@id": "https://orcid.org/0000-0002-6233-2591", 
      "@type": "Person", 
      "name": "Zdun, Uwe"
    }, 
    {
      "affiliation": "University of Applied Sciences of Eastern Switzerland", 
      "@type": "Person", 
      "name": "Zimmermann, Olaf"
    }
  ], 
  "headline": "From OpenAPI Fragments to API Pattern Primitives and Design Smells", 
  "image": "https://zenodo.org/static/img/logos/zenodo-gradient-round.svg", 
  "datePublished": "2021-11-25", 
  "url": "https://zenodo.org/record/5727094", 
  "keywords": [
    "Application Programming Interfaces", 
    "API Patterns", 
    "API Design Smells", 
    "API Structural Fragments", 
    "Pattern Minning", 
    "OpenAPI"
  ], 
  "@context": "https://schema.org/", 
  "identifier": "https://doi.org/10.1145/3489449.3489998", 
  "@id": "https://doi.org/10.1145/3489449.3489998", 
  "@type": "ScholarlyArticle", 
  "name": "From OpenAPI Fragments to API Pattern Primitives and Design Smells"
}
70
94
views
downloads
Views 70
Downloads 94
Data volume 322.9 MB
Unique views 65
Unique downloads 89

Share

Cite as