Conference paper Open Access
Serbout, Souhaila;
Pautasso, Cesare;
Zdun, Uwe;
Zimmermann, Olaf
<?xml version='1.0' encoding='UTF-8'?> <record xmlns="http://www.loc.gov/MARC21/slim"> <leader>00000nam##2200000uu#4500</leader> <datafield tag="540" ind1=" " ind2=" "> <subfield code="u">https://creativecommons.org/licenses/by/4.0/legalcode</subfield> <subfield code="a">Creative Commons Attribution 4.0 International</subfield> </datafield> <datafield tag="260" ind1=" " ind2=" "> <subfield code="c">2021-11-25</subfield> </datafield> <controlfield tag="005">20211126014846.0</controlfield> <controlfield tag="001">5727094</controlfield> <datafield tag="909" ind1="C" ind2="O"> <subfield code="p">openaire</subfield> <subfield code="o">oai:zenodo.org:5727094</subfield> </datafield> <datafield tag="520" ind1=" " ind2=" "> <subfield code="a"><p>In the past few years, the OpenAPI Specification (OAS) has emerged<br> as a standard description language for accurately modeling Web<br> APIs. Today, thousands of OpenAPI descriptions can be found by<br> mining open source repositories. In this paper, we attempt to exploit<br> these artifacts to extract commonly occurring building blocks used<br> inWeb API structures, in order to assistWeb API designers in their<br> modelling task. Our work is based on a fragmentation mechanism,<br> that starts from OpenAPI descriptions ofWeb APIs to extract their<br> structures, then fragment these structures into smaller blocks. This<br> approach enabled us to extract a large dataset of reoccurring fragments<br> from a collection of 6619 API specifications. Such fragments<br> have been found multiple times in the same or across different APIs.<br> We have classified the most reoccurring fragments into four pattern<br> primitives used to expose in the API access to collections of items.<br> We distinguish for each primitive variants from design smells. This<br> classification is based on the specific combinations of operations<br> associated with the collection items and on an in-depth analysis of<br> their natural language labels and descriptions. The resulting pattern<br> primitives are intended to support designers who would like to introduce<br> one or more collections for a specific class of items in their<br> HTTP-based API.</p></subfield> </datafield> <datafield tag="700" ind1=" " ind2=" "> <subfield code="u">Software Institute, USI</subfield> <subfield code="a">Pautasso, Cesare</subfield> </datafield> <datafield tag="700" ind1=" " ind2=" "> <subfield code="u">University of Vienna</subfield> <subfield code="0">(orcid)0000-0002-6233-2591</subfield> <subfield code="a">Zdun, Uwe</subfield> </datafield> <datafield tag="700" ind1=" " ind2=" "> <subfield code="u">University of Applied Sciences of Eastern Switzerland</subfield> <subfield code="a">Zimmermann, Olaf</subfield> </datafield> <datafield tag="856" ind1="4" ind2=" "> <subfield code="s">3435165</subfield> <subfield code="z">md5:15df08091f1decf9cb0a89cab434ca93</subfield> <subfield code="u">https://zenodo.org/record/5727094/files/main.pdf</subfield> </datafield> <datafield tag="542" ind1=" " ind2=" "> <subfield code="l">open</subfield> </datafield> <datafield tag="980" ind1=" " ind2=" "> <subfield code="a">publication</subfield> <subfield code="b">conferencepaper</subfield> </datafield> <datafield tag="100" ind1=" " ind2=" "> <subfield code="u">Software Institute, USI</subfield> <subfield code="a">Serbout, Souhaila</subfield> </datafield> <datafield tag="041" ind1=" " ind2=" "> <subfield code="a">eng</subfield> </datafield> <datafield tag="653" ind1=" " ind2=" "> <subfield code="a">Application Programming Interfaces</subfield> </datafield> <datafield tag="653" ind1=" " ind2=" "> <subfield code="a">API Patterns</subfield> </datafield> <datafield tag="653" ind1=" " ind2=" "> <subfield code="a">API Design Smells</subfield> </datafield> <datafield tag="653" ind1=" " ind2=" "> <subfield code="a">API Structural Fragments</subfield> </datafield> <datafield tag="653" ind1=" " ind2=" "> <subfield code="a">Pattern Minning</subfield> </datafield> <datafield tag="653" ind1=" " ind2=" "> <subfield code="a">OpenAPI</subfield> </datafield> <datafield tag="024" ind1=" " ind2=" "> <subfield code="a">10.1145/3489449.3489998</subfield> <subfield code="2">doi</subfield> </datafield> <datafield tag="245" ind1=" " ind2=" "> <subfield code="a">From OpenAPI Fragments to API Pattern Primitives and Design Smells</subfield> </datafield> <datafield tag="536" ind1=" " ind2=" "> <subfield code="c">200021L_184692</subfield> <subfield code="a">API-ACE: Analytics-based Continuous Design and Evolution of Microservice APIs</subfield> </datafield> <datafield tag="536" ind1=" " ind2=" "> <subfield code="c">I 4268</subfield> <subfield code="a">Analytics-centric Continuous Design of Microservice APIs</subfield> </datafield> <datafield tag="650" ind1="1" ind2="7"> <subfield code="a">cc-by</subfield> <subfield code="2">opendefinition.org</subfield> </datafield> </record>
Views | 70 |
Downloads | 94 |
Data volume | 322.9 MB |
Unique views | 65 |
Unique downloads | 89 |