1

我是Android開發人員,同時也具有RESTful API開發的一些知識。目前我正在使用DotNet Web API構建API。一切工作正常,但我仍然關心設計。RESTful API最佳實踐

現在我最關心的是響應的元數據究竟應該是什麼,就像我可以添加除「響應代碼」和「響應消息」之外的其他有用元素。

對我來說第二個問題是,如果請求是異步的或查詢或兩者兼而有之。

最後一個問題是我應該使用什麼技術來進行諸如JWT或基本身份驗證等無狀態通信。

回答

1

首先,您應該閱讀Roy Thomas Fielding的Architectural Styles and the Design of Network-based Software Architectures的第5章。您將首先了解REST的架構約束,元素和視圖。

對我來說,核心問題是現在究竟應該像什麼其他有用的元素,我可以從「二維碼」和「響應消息」添加除了響應的元數據。

REST的一個架構元素是Representations。表示法允許客戶解釋響應。 RESTful HTTP表示由MIME類型實現。欲瞭解更多信息,請參閱[2]。 你應該考慮的其他方面是URI,支持的HTTP方法,URL參數和消息體。

第二個問題是,如果請求是異步或查詢,或者兩者兼而有之。

REST的一個架構約束是客戶端 - 服務器架構風格。因此,您的服務器應該處理併發請求,以一次處理多個客戶端請求。如果查詢,方法或函數異步處理對於RESTful無關緊要。

而最後值得關注的是,我應該用什麼技術,使像智威湯遜或基本身份驗證狀態的通信等

智威湯遜和基本的認證都是無國籍身份驗證方法。術語無狀態意味着客戶端請求包含服務器處理客戶端請求所需的所有信息。

0

1)META數據 - 資源表示應該是自己根據Fielding驅動的HATEOAS。所以你可以考慮添加相關資源links in meta data

2)同步/異步 - 它取決於API試圖做什麼。如果它調用一個長時間運行的進程,Async API是自然選擇。否則堅持與Sync API。

3)有狀態通信 - 正在stateless是REST體系結構的一個約束。請求之間不得在服務器上存儲客戶端上下文。客戶負責管理應用程序的狀態。