首頁  >  問答  >  主體

使用 UUID 和 slug 欄位管理 Laravel REST API 中公共和內部識別碼的最佳方法

我有一個表,其中包含經典的自動遞增 ID 和公司名稱。為了避免將業務 ID 暴露給客戶端,我想使用 UUID。到目前為止,一切都很好。唯一的問題是,對於從URL 呼叫它,最好採用更用戶友好的格式,例如“api/businesses/my-business”,而不是“api/businesses/10b940f2-5f8c-42ac-9c35-b6d0de45995b” ”。因此,如果我向表中新增一個「slug」欄位以用於GET 請求,同時使用UUID 進行資料更新,這會被視為最佳實踐嗎?

就我而言,我需要在報價表中建立一筆記錄,因此 PATCH 將是:

PATCH /api/quotes/4dc93692-0ad9-4131-94fe-b4afec88d037

{
    "business_uuid": "10b940f2-5f8c-42ac-9c35-b6d0de45995b",
    "object": "My quote object",
    "another_column": "Hello",
}

P粉360266095P粉360266095228 天前339

全部回覆(1)我來回復

  • P粉262073176

    P粉2620731762024-03-29 09:51:26

    如果您的資料庫表格結構包含iduuidslug,請考慮以下內容:

    1. 僅在後端內部使用 id
    2. 使用 REST API (CRUD) 處理資源時使用 uuid
    3. 當您想要在人類更容易讀取/識別/理解資料的地方處理資源時,請使用 slug 。不要忘記 slug 必須是唯一的。但對於服務之間的基本 CRUD 操作,我仍然建議繼續使用 uuid

    我還建議查看有關 Laravel 資源 的 Laravel 文檔,這些文檔可以幫助您為 API 準備數據,以及 slugify 助手 處理您的數據字段之一的函數。

    回覆
    0
  • 取消回覆