我有一個作品集,我在其中展示我的作業(主要是后端 API 的東西,只有最少的 UI 可以互動),并且目前正在記錄 API。我擁有的是每個專案的一個頁面以及屬于它的檔案。在我的 API 中,我使用了一個以它所使用的資源命名的“基本”端點 ( /todos, /posts,…)。GET /todos會todos從資料庫回傳一個串列,非常標準的東西。我還使用“基本”/me端點能夠回傳當前登錄用戶的每種資源(可以是posts, todos,... 例如:GET /me/todos將回傳todos當前用戶的每一個)。
因為我每個專案/檔案都有一個頁面,我應該/me在單獨的頁面中列出和記錄每個端點(例如,在我的“組態檔”頁面中),還是應該將它們放在各自的專案頁面中?例如:在我的“Todos”專案頁面中,我會記錄每個/todos端點GET /me/todos以及每個專案的等等。
我知道這聽起來可能是一個愚蠢的問題,但是將專案的“基本”端點(例如:)/todos與該GET /me/todos端點混合起來有點讓我煩惱(因為/todos端點似乎不再是“基本”端點) )。但同時,我覺得GET /me/todos在“Todos”專案頁面中記錄這一點將有助于導航和閱讀檔案。
有人可以指出我正確的方向嗎?非常感謝
uj5u.com熱心網友回復:
如果您開發 REST API,則存在統一介面約束,其中包括 HATEOAS 約束,即 API 必須提供超鏈接,客戶端必須依賴超鏈接元資料而不是 URI 結構。類似的東西,ReadMyTodos而不是GET /me/todos. 最壞情況的解決方案是{"ReadMyTodos": ["GET", "/me/todos"]}為客戶添加一個要翻譯的地圖,但您不會獲得相同的體驗,因為客戶不知道哪個頁面上允許的內容,所以您也需要一個地圖{"/me": ["ReadMyTodos", "ReadMyPosts"]}. 只有當每個用戶在您的 API 中具有相同的角色并且每個資源都支持相同的操作時,這才有效,支持的操作不依賴于資源狀態,這是不太可能的。通常你的 API 不應該給出錯誤訊息,因為你想更新一個被管理員關閉的帖子。這是因為更新帖子的超鏈接根本不能出現在超鏈接串列中。如果您不回傳超鏈接,則客戶端會嘗試操作是否可用,并且他們將無緣無故地依賴反復試驗。
如果您不想使用上面的方法,因此我們不是在談論 REST API,那么GET /todos和GET /me/todos為同一用戶回傳不同的串列,那么您必須單獨記錄它們。這并不一定意味著它們需要位于單獨的檔案頁面上。如果它們是相互關聯的,您可以使用部分/磁區將它們分隔在一個頁面上。例如,您可以擁有與Todos 相關的鏈接,并將它們記錄在單個頁面上,并且通常在頁面頂部有一個鏈接串列,以及帶有主題標簽的本地錨點,例如/docs/Todo#ReadMyTodos.
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/528451.html
