簡體   English   中英

API的服務發現設計

[英]Design for service discovery of an API

我正在開發一個相當大的API(390多個功能),並且試圖將文檔團隊需要的所有信息匯總在一起,以便為該項目創建文檔。

我決定使用JSON Hyperschema來表示這一點。

我創建了一個注釋處理器,以從我的代碼中查找所有javax.ws.rs.Path注釋,並獲取Javadoc,http方法(來自注釋)和其他參數信息,但是我遇到了問題。

超級模式建議(並且我的項目規范要求),將通過API發送的對象作為模式包括在超級模式中。 通常,我會使用Jackson來完成此任務。 但是,因為我位於不在主API項目中的注釋處理器中,所以我不能使用類引用(例如User.class ,其中user是我的API項目中的對象,而不是我的處理器中的對象),而不會產生錯誤。 (這是解釋在這里 )。

我的問題是,解決此限制的最佳方法是什么? 我提出了一種方法,如下所述,但是我希望此方法可以插入到其他任何服務(相同格式)中,以對其進行記錄。

作為對此的解決方案,我考慮過在編譯時和運行時中斷生成器。 在編譯時,我將使用占位符生成JSON超模式以引用對象模式。 它還將生成帶有所有對象全名的資源文件。

在運行時,我計划為返回的對象生成模式,然后將指向它們的鏈接插入JSON。

恕我直言,這種解決方案似乎不是很“優雅”。 是否有人對實現此目標的其他方式有任何見識?

我會建議以下項目:

jsonschema-hypermedia-support ,可在此處確認輸入鏈接描述

或使用Spring HATEOAS另請參閱有關Restful API的stackoveflow線程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM