2015-09-06 48 views
3

api blueprint或Apiary.io是否支持版本化API的概念?特別是,我的版本通過URI我的API是這樣的:Apiary.io和/或API Blueprint是否支持api版本控制?

GET /api/v2/SomeResource/ 

在上面的例子中,這意味着我在調用API的第2版(「V2」)。 api藍圖是否支持這個?如何記錄給定操作的多個版本或整個API?

+0

還有什麼值得檢查mnot關於版本控制的文章https://www.mnot.net/blog/2011/10/25/web_api_versioning_smackdown – Zdenek

回答

6

您可以使用HOST頭,以表示:

HOST: http://example.com/api/v2是要前綴所有資源與/api/v2

在API藍圖中,如果使用URL前綴,則API被認爲是不同的,因此應該爲它們使用不同的藍圖。

如果您使用具有版本後綴的媒體類型來做到這一點,那麼您可以在標頭中指定正確的Content-Type,並且它們將在模擬服務器中用於內容協商。

+0

好的,所以在Apiary中沒有任何特別的URL版本控制支持此時。很公平。 – jakejgordon

+0

@jakejgordon「特殊支持」將如何? – Almad

+1

不確定 - 可能通過UI啓動新版本的API,選擇新的版本號,然後只添加新的/更改的操作到新的藍圖。懷疑這可能只能通過API藍圖文件驅動 - 可能需要在Apiary中額外的元數據。 – jakejgordon