Web Application Programming Interfaces (Apis): General-Purpose Standards, Terms and European Commission Initiatives
Total Page:16
File Type:pdf, Size:1020Kb
Web Application Programming Interfaces (APIs): general-purpose standards, terms and European Commission initiatives APIs4DGov study — digital government APIs: the road to value-added open API-driven services Santoro, M., Vaccari, L., Mavridis, D., Smith, R. S., Posada, M., Gattwinkel, D. 2019 EUR 29984 EN This publication is a Technical report by the Joint Research Centre (JRC), the European Commission’s science and knowledge service. It aims to provide evidence-based scientific support to the European policymaking process. The scientific output expressed does not imply a policy position of the European Commission. Neither the European Commission nor any person acting on behalf of the Commission is responsible for the use that might be made of this publication. For information on the methodology and quality underlying the data used in this publication for which the source is neither Eurostat nor other Commission services, users should contact the referenced source. The designations employed and the presentation of material on the maps do not imply the expression of any opinion whatsoever on the part of the European Union concerning the legal status of any country, territory, city or area or of its authorities, or concerning the delimitation of its frontiers or boundaries. Contact information Name: European Commission, Joint Research Centre (JRC), Digital Economy Unit (JRC.B6) Address: Via Enrico Fermi, 2749 — 21027 Ispra (VA), Italy Email: [email protected] Tel.: +39 0332 78 57 58 EU Science Hub https://ec.europa.eu/jrc JRC118082 EUR 29984 EN PDF ISBN 978-92-76-13183-0 ISSN 1831-9424 doi:10.2760/675 Luxembourg: Publications Office of the European Union, 2019 © European Union, 2019 The reuse policy of the European Commission is implemented by the Commission Decision 2011/833/EU of 12 December 2011 on the reuse of Commission documents (OJ L 330, 14.12.2011, p. 39). Except otherwise noted, the reuse of this document is authorised under the Creative Commons Attribution 4.0 International (CC BY 4.0) licence (https://creativecommons.org/licenses/by/4.0/). This means that reuse is allowed provided appropriate credit is given and any changes are indicated. For any use or reproduction of photos or other material that is not owned by the EU, permission must be sought directly from the copyright holders. All content © European Union, 2019, except: cover page, BlooblGum, 193379769, 2019. Source: AdobeStock.com How to cite this report: Santoro, M., Vaccari, L., Mavridis, D., Smith, R., Posada M. and Gattwinkel D., Web APIs: general-purpose standards, terms and European Commission initiatives, EUR 29984 EN, Publications Office of the European Union, Luxembourg, 2019, ISBN 978-92- 76-13183-0, doi:10.2760/675, JRC118082. How to cite the list of standards on which this report is based on: Vaccari, L. and Santoro, M., API standards and technical specifications - APIs4DGov, European Commission, Joint Research Centre (JRC), 2019 [Dataset] PID: http://data.europa.eu/89h/5a431f38-1e2c-449a-898e-34f2a3234c3b. Contents Preface .........................................................................................................................................................................................................................................................................1 Acknowledgements ..........................................................................................................................................................................................................................................2 Abstract .......................................................................................................................................................................................................................................................................3 1 Introduction.....................................................................................................................................................................................................................................................4 1.1 Scope of the report ....................................................................................................................................................................................................................5 1.2 Definitions ..........................................................................................................................................................................................................................................5 1.2.1 Application Programming Interfaces ......................................................................................................................................................5 1.2.2 Web APIs and Web Services ...........................................................................................................................................................................6 1.2.2.1 Trends in the adoption of web APIs ...........................................................................................................................................6 1.2.3 Remote Procedure Call and Representational State Transfer ........................................................................................ 7 1.2.4 API maturity models ............................................................................................................................................................................................10 1.2.4.1 Amundsen maturity model ..............................................................................................................................................................10 1.2.4.2 Richardson maturity model .............................................................................................................................................................10 1.2.5 Microservices ..............................................................................................................................................................................................................11 2 Presentation of the documents ................................................................................................................................................................................................13 2.1 Methodology..................................................................................................................................................................................................................................13 2.2 Shortlist of technical specifications and standards ................................................................................................................................14 2.2.1 Functional specification ...................................................................................................................................................................................15 2.2.1.1 Resource representation ....................................................................................................................................................................15 2.2.1.1.1 Hypermedia specification ...............................................................................................................................................15 2.2.1.1.2 Repositories of media and link relation types ............................................................................................16 2.2.1.1.3 Vocabularies ................................................................................................................................................................................17 2.2.1.2 Communication protocol ....................................................................................................................................................................17 2.2.1.2.1 GraphQL...........................................................................................................................................................................................18 2.2.1.2.2 gRPC ....................................................................................................................................................................................................18 2.2.1.2.3 SPARQL .............................................................................................................................................................................................18 2.2.1.2.4 WebSocket ....................................................................................................................................................................................19 2.2.1.2.5 XML -RPC and JSON-RPC ..................................................................................................................................................19 2.2.2 Security ............................................................................................................................................................................................................................19 2.2.2.1 Authentication ..............................................................................................................................................................................................20 2.2.2.1.1 API key ..............................................................................................................................................................................................20