首页  >  问答  >  正文

使用 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 天前343

全部回复(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
  • 取消回复