OpenAPI規範簡介

banq發表於2018-08-19
API開發從來都不是一項容易的任務,而不斷髮展的API則更加複雜。

我們如何確保不經意間地釋出實際會對API實行了重大更改? 我們如何交流怎樣使用API? 我們如何記錄我們的API? 我們如何自動化API的測試? 我們能不能做到這一切,並保持技術不可知論?

有大量的工具可供我們使用,然而,沒有一個是“恰到好處”的。

我們有一個選擇: 消費者驅動合同,ThoughtWorks總結如下:

在消費者驅動合同中,每個消費者在一個單獨的合同中記錄他們對提供者的期望。所有這些合同都是和服務提供者共享,提供者可以建立一個測試套件來驗證這些他們應該履行的義務。這可以讓他們保持敏捷,做出不影響任何消費者的改變。

簡而言之,“合同”可以看作是一種請求/響應。你給API一個X,並且可以期望api返回一個Y,合同契約是一種定義API互動的技術。

然而,合同在記錄API方面做得很差。

對於釋出公共API的情況,我們需要一種與技術無關的方法來記錄我們的API。目前,開放API在這個領域是一個明確的領導者。

2015年,SmartBear捐贈了用於OpenAPIInitiative的swagger2.0規範。這開啟了OpenAPIInitiative的形成,這是一個由多家公司組成的聯盟,包括:3 Scale、Apiges、Capital One、Google、IBM、Intuit、Microsoft、PayPal和Restlet。

在2017年夏天,OpenAPI倡議釋出了開放API 3.0規範。(跟“Swagger”這個名字說再見)

OpenAPI3.0規範可以用JSON或YAML編寫,並且在記錄RESTfulAPI方面做得很好。

開放API規範定義API互動。

OpenAPI3.0規範是也定義擴充套件。

透過使用OpenAPI規範擴充套件,我們可以定義消費者驅動的契約。

相關文章