Přehled RESTful API Popis Jazyky - Overview of RESTful API Description Languages
Klidný (přenos reprezentativního stavu) API (aplikační programovací rozhraní) DL (jazyky popisu) jsou formální jazyky navržen tak, aby poskytoval strukturovaný popis a Klidný webové rozhraní API to je užitečné jak pro člověka, tak pro automatizované strojové zpracování. API Popis Jazyky se někdy nazývají jazyky popisu rozhraní (IDL). Strukturovaný popis lze použít ke generování dokumentace pro člověka programátoři; taková dokumentace může být snadněji čitelná než dokumentace ve volném formátu, protože veškerá dokumentace vygenerovaná stejným nástrojem dodržuje stejné konvence formátování. Navíc je popisný jazyk obvykle dostatečně přesný, aby umožnil automatizovanému generování různých softwarových artefaktů, jako jsou knihovny, přístup k API z různých programovacích jazyků, což bere zátěž jejich ručního vytváření mimo programátory.
Dějiny
Existují dva předchozí hlavní jazyky popisu: WSDL2.0 (Jazyk popisu webových služeb) a WADL (Jazyk popisu webové aplikace). Ani v tomto odvětví není široce přijímán pro popis RESTful API, s odvoláním na špatnou lidskou čitelnost obou a WADL ve skutečnosti není schopen plně popsat RESTful API.[1]
Alternativy
Hypertextově řízená API
Alternativní přístup k vytváření RESTful API je znám pod zkratkou HATEOAS (Hypermedia jako motor stavu aplikace ). V tomto přístupu není klientský software zapsán do statického popisu rozhraní sdíleného prostřednictvím dokumentace. Místo toho je klientovi dána sada vstupních bodů a API je objeveno dynamicky prostřednictvím interakce s těmito koncovými body. HATEOAS byl představen v Roy Fielding disertační práce Architektonické styly a návrh síťových softwarových architektur. HATEOAS je původní vizí pro RESTful API, která je odlišuje od RPC mechanismy.[2]
Seznam RESTful API DL
- Jazyk popisu webových služeb (WSDL)
- Jazyk popisu webové aplikace (WADL)
- CloudRail
- URL: http://cloudrail.com/
- vývojář: licobo GmbH
- Koncové body Google Cloud
- Otevřený datový protokol (OData)
- OÁZA Standard[3]
- URL: http://www.odata.org/
- vývojář: Microsoft
- Specifikace OpenAPI
- URL: https://openapis.org/
- vývojář: Open API Initiative (OAI), původně vyvinutý jako specifikace "Swagger" autorem Wordnik, Software SmartBear
- RESTful Popis jazyka služby (RSDL)
- URL: http://www.balisage.net/Proceedings/vol10/html/Robie01/BalisageVol10-Robie01.html
- vývojář: Michael Pasternak
- Hydra Core Vocabulary (Hydra)
- URL: http://www.hydra-cg.com/spec/latest/core/
- vývojář: Hydra W3C Community Group, http://www.hydra-cg.com/
- RESTful API Modeling Language (RAML)
- URL: http://raml.org/
- vývojář: Mulesoft, http://www.mulesoft.com/
- Hypermedia
- API Blueprint
- URL: https://apiblueprint.org/
- vývojář Apiary, https://apiary.io/company
- Tvůrce API
- URL: https://www.apibuilder.io/
- vývojáři: HBC, Flow Commerce
- I / O Docs
- URL: https://github.com/mashery/iodocs
- vývojář: Mashery, http://www.mashery.com/
- Apache Avro
- Advokát
- URL: http://barrister.bitmechanic.com/
- vývojář: James Cooper[4]
- SERIN - sémantická uklidňující rozhraní[5]
- URL: http://www.semanticinterface.org
- vývojáři: Bruno Muniz, Hermano Lira, José Renato Villela Dantas, Tadeu Nunes, Laura Chaves, Julio Cesar Campos Neto, Pedro Porfírio Muniz Farias
Seznam jazyků popisu dat
Významnou součástí popisu RESTful API je specifikace vrácených datových struktur. IDL může buď zadat svůj vlastní formát, nebo použít existující formát popisu dat. Pozoruhodný příklad, který používá mnoho RESTful API DL Schéma JSON.
- json: api
- http://jsonapi.org/
- Spuštěno jako REST adaptér pro Žhavý Data
- Schéma JSON
- používá OpenAPI, Google APIs Discovery,[6] I / O Docs
- Apache Avro
- https://avro.apache.org/
- jak jazyk popisu rozhraní, tak jazyk popisu dat
- JSON-RPC 2.0
- používá Barrister
Porovnání RESTful API DLs
Komunita kolem RESTful API DL je aktivní a prostředí se stále mění. Podle prezentace Akany jsou nejaktivnějšími projekty v této oblasti OpenAPI, RAML a API Blueprint.[1]
Sponzor | Počáteční potvrzení | Nejnovější stabilní vydání | Stabilní datum vydání | Softwarová licence[7] | Formát | Otevřený zdroj | Generování kódu (klient) | Generování kódu (server) | |
---|---|---|---|---|---|---|---|---|---|
RAML | MuleSoft | Září 2013 | 1.0 | 16. května 2016 | Apache 2.0 | YAML | Ano | Ano | Ano |
API Blueprint | Včelín | Duben 2013 | MIT | Snížení | Ano | Ne | Ne | ||
OpenAPI | Open API Initiative (OAI) | Červenec 2011 | 3.0 | 26. července 2017 | Apache 2.0 | JSON nebo YAML | Ano | Ano | Ano |
SERIN | UNIFOR | 2011 | 2.0 | Prosince 2014 | Creative Commons | RDF | Ano | Ne | Ano |
Rámce
Mnoho serverových rámců spolupracuje s jedním nebo více IDL.
- Rámec API REST API Gugamarket
- IDL: OpenAPI
- URL: https://pliik.github.io/gugamarket/
- vývojář: https://github.com/pliik
Reference
- ^ Fielding, Roy. „REST APIs must be hypertext-driven“. Citováno 4. listopadu 2015.
- ^ „TC OASIS Open Data Protocol (OData) - OASIS“.
- ^ „Barrister RPC - About“.
- ^ Lira, Hermano Albuquerque; Dantas, Jose Renato Villela; Muniz, Bruno de Azevedo; Nunes, Tadeu Matos; Farias, Pedro Porfirio Muniz (01.01.2015). „Přístup k podpoře integrity dat pro webové služby pomocí sémantických rozhraní RESTful“. Sborník z 24. mezinárodní konference o World Wide Web. WWW '15 Companion. New York, NY, USA: ACM: 1485–1490. doi:10.1145/2740908.2743042. ISBN 9781450334730.
- ^ https://developers.google.com/discovery/v1/reference/apis
- ^ Licence zde představují souhrn a nepovažují se za úplná prohlášení o licencích. Některé balíčky mohou používat knihovny pod různými licencemi.