Conference paper Open Access

From OpenAPI Fragments to API Pattern Primitives and Design Smells

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


DCAT Export

<?xml version='1.0' encoding='utf-8'?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:adms="http://www.w3.org/ns/adms#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dct="http://purl.org/dc/terms/" xmlns:dctype="http://purl.org/dc/dcmitype/" xmlns:dcat="http://www.w3.org/ns/dcat#" xmlns:duv="http://www.w3.org/ns/duv#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:frapo="http://purl.org/cerif/frapo/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:gsp="http://www.opengis.net/ont/geosparql#" xmlns:locn="http://www.w3.org/ns/locn#" xmlns:org="http://www.w3.org/ns/org#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:prov="http://www.w3.org/ns/prov#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:schema="http://schema.org/" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:vcard="http://www.w3.org/2006/vcard/ns#" xmlns:wdrs="http://www.w3.org/2007/05/powder-s#">
  <rdf:Description rdf:about="https://zenodo.org/record/5727094">
    <dct:identifier rdf:datatype="http://www.w3.org/2001/XMLSchema#anyURI">https://zenodo.org/record/5727094</dct:identifier>
    <foaf:page rdf:resource="https://zenodo.org/record/5727094"/>
    <dct:creator>
      <rdf:Description>
        <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
        <foaf:name>Serbout, Souhaila</foaf:name>
        <foaf:givenName>Souhaila</foaf:givenName>
        <foaf:familyName>Serbout</foaf:familyName>
        <org:memberOf>
          <foaf:Organization>
            <foaf:name>Software Institute, USI</foaf:name>
          </foaf:Organization>
        </org:memberOf>
      </rdf:Description>
    </dct:creator>
    <dct:creator>
      <rdf:Description>
        <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
        <foaf:name>Pautasso, Cesare</foaf:name>
        <foaf:givenName>Cesare</foaf:givenName>
        <foaf:familyName>Pautasso</foaf:familyName>
        <org:memberOf>
          <foaf:Organization>
            <foaf:name>Software Institute, USI</foaf:name>
          </foaf:Organization>
        </org:memberOf>
      </rdf:Description>
    </dct:creator>
    <dct:creator>
      <rdf:Description rdf:about="http://orcid.org/0000-0002-6233-2591">
        <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
        <dct:identifier rdf:datatype="http://www.w3.org/2001/XMLSchema#string">0000-0002-6233-2591</dct:identifier>
        <foaf:name>Zdun, Uwe</foaf:name>
        <foaf:givenName>Uwe</foaf:givenName>
        <foaf:familyName>Zdun</foaf:familyName>
        <org:memberOf>
          <foaf:Organization>
            <foaf:name>University of Vienna</foaf:name>
          </foaf:Organization>
        </org:memberOf>
      </rdf:Description>
    </dct:creator>
    <dct:creator>
      <rdf:Description>
        <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
        <foaf:name>Zimmermann, Olaf</foaf:name>
        <foaf:givenName>Olaf</foaf:givenName>
        <foaf:familyName>Zimmermann</foaf:familyName>
        <org:memberOf>
          <foaf:Organization>
            <foaf:name>University of Applied Sciences of Eastern Switzerland</foaf:name>
          </foaf:Organization>
        </org:memberOf>
      </rdf:Description>
    </dct:creator>
    <dct:title>From OpenAPI Fragments to API Pattern Primitives and Design Smells</dct:title>
    <dct:publisher>
      <foaf:Agent>
        <foaf:name>Zenodo</foaf:name>
      </foaf:Agent>
    </dct:publisher>
    <dct:issued rdf:datatype="http://www.w3.org/2001/XMLSchema#gYear">2021</dct:issued>
    <dcat:keyword>Application Programming Interfaces</dcat:keyword>
    <dcat:keyword>API Patterns</dcat:keyword>
    <dcat:keyword>API Design Smells</dcat:keyword>
    <dcat:keyword>API Structural Fragments</dcat:keyword>
    <dcat:keyword>Pattern Minning</dcat:keyword>
    <dcat:keyword>OpenAPI</dcat:keyword>
    <frapo:isFundedBy rdf:resource="info:eu-repo/grantAgreement/SNSF/Project funding - Project funding (Div. I-III)/200021L_184692/"/>
    <schema:funder>
      <foaf:Organization>
        <dct:identifier rdf:datatype="http://www.w3.org/2001/XMLSchema#string">10.13039/501100001711</dct:identifier>
        <foaf:name>Schweizerischer Nationalfonds zur Förderung der Wissenschaftlichen Forschung</foaf:name>
      </foaf:Organization>
    </schema:funder>
    <frapo:isFundedBy rdf:resource="info:eu-repo/grantAgreement/FWF/Internationale+Projekte/I+4268/"/>
    <schema:funder>
      <foaf:Organization>
        <dct:identifier rdf:datatype="http://www.w3.org/2001/XMLSchema#string">10.13039/501100002428</dct:identifier>
        <foaf:name>Austrian Science Fund</foaf:name>
      </foaf:Organization>
    </schema:funder>
    <dct:issued rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2021-11-25</dct:issued>
    <dct:language rdf:resource="http://publications.europa.eu/resource/authority/language/ENG"/>
    <owl:sameAs rdf:resource="https://zenodo.org/record/5727094"/>
    <adms:identifier>
      <adms:Identifier>
        <skos:notation rdf:datatype="http://www.w3.org/2001/XMLSchema#anyURI">https://zenodo.org/record/5727094</skos:notation>
        <adms:schemeAgency>url</adms:schemeAgency>
      </adms:Identifier>
    </adms:identifier>
    <owl:sameAs rdf:resource="https://doi.org/10.1145/3489449.3489998"/>
    <dct:description>&lt;p&gt;In the past few years, the OpenAPI Specification (OAS) has emerged&lt;br&gt; as a standard description language for accurately modeling Web&lt;br&gt; APIs. Today, thousands of OpenAPI descriptions can be found by&lt;br&gt; mining open source repositories. In this paper, we attempt to exploit&lt;br&gt; these artifacts to extract commonly occurring building blocks used&lt;br&gt; inWeb API structures, in order to assistWeb API designers in their&lt;br&gt; modelling task. Our work is based on a fragmentation mechanism,&lt;br&gt; that starts from OpenAPI descriptions ofWeb APIs to extract their&lt;br&gt; structures, then fragment these structures into smaller blocks. This&lt;br&gt; approach enabled us to extract a large dataset of reoccurring fragments&lt;br&gt; from a collection of 6619 API specifications. Such fragments&lt;br&gt; have been found multiple times in the same or across different APIs.&lt;br&gt; We have classified the most reoccurring fragments into four pattern&lt;br&gt; primitives used to expose in the API access to collections of items.&lt;br&gt; We distinguish for each primitive variants from design smells. This&lt;br&gt; classification is based on the specific combinations of operations&lt;br&gt; associated with the collection items and on an in-depth analysis of&lt;br&gt; their natural language labels and descriptions. The resulting pattern&lt;br&gt; primitives are intended to support designers who would like to introduce&lt;br&gt; one or more collections for a specific class of items in their&lt;br&gt; HTTP-based API.&lt;/p&gt;</dct:description>
    <dct:accessRights rdf:resource="http://publications.europa.eu/resource/authority/access-right/PUBLIC"/>
    <dct:accessRights>
      <dct:RightsStatement rdf:about="info:eu-repo/semantics/openAccess">
        <rdfs:label>Open Access</rdfs:label>
      </dct:RightsStatement>
    </dct:accessRights>
    <dct:license rdf:resource="https://creativecommons.org/licenses/by/4.0/legalcode"/>
    <dcat:distribution>
      <dcat:Distribution>
        <dcat:accessURL rdf:resource="https://doi.org/10.1145/3489449.3489998"/>
        <dcat:byteSize>3435165</dcat:byteSize>
        <dcat:downloadURL rdf:resource="https://zenodo.org/record/5727094/files/main.pdf"/>
        <dcat:mediaType>application/pdf</dcat:mediaType>
      </dcat:Distribution>
    </dcat:distribution>
  </rdf:Description>
  <foaf:Project rdf:about="info:eu-repo/grantAgreement/SNSF/Project funding - Project funding (Div. I-III)/200021L_184692/">
    <dct:identifier rdf:datatype="http://www.w3.org/2001/XMLSchema#string">200021L_184692</dct:identifier>
    <dct:title>API-ACE: Analytics-based Continuous Design and Evolution of Microservice APIs</dct:title>
    <frapo:isAwardedBy>
      <foaf:Organization>
        <dct:identifier rdf:datatype="http://www.w3.org/2001/XMLSchema#string">10.13039/501100001711</dct:identifier>
        <foaf:name>Schweizerischer Nationalfonds zur Förderung der Wissenschaftlichen Forschung</foaf:name>
      </foaf:Organization>
    </frapo:isAwardedBy>
  </foaf:Project>
  <foaf:Project rdf:about="info:eu-repo/grantAgreement/FWF/Internationale+Projekte/I+4268/">
    <dct:identifier rdf:datatype="http://www.w3.org/2001/XMLSchema#string">I 4268</dct:identifier>
    <dct:title>Analytics-centric Continuous Design of Microservice APIs</dct:title>
    <frapo:isAwardedBy>
      <foaf:Organization>
        <dct:identifier rdf:datatype="http://www.w3.org/2001/XMLSchema#string">10.13039/501100002428</dct:identifier>
        <foaf:name>Austrian Science Fund</foaf:name>
      </foaf:Organization>
    </frapo:isAwardedBy>
  </foaf:Project>
</rdf:RDF>
69
93
views
downloads
Views 69
Downloads 93
Data volume 319.5 MB
Unique views 64
Unique downloads 88

Share

Cite as