使用 UUID 和 slug 列管理 Laravel REST API 中公共和内部标识符的最佳方法
P粉360266095
P粉360266095 2024-03-28 13:41:30
0
1
354

我有一个表,其中包含经典的自动递增 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粉360266095
P粉360266095

全部回复(1)
P粉262073176

如果您的数据库表结构包含iduuidslug,请考虑以下内容:

  1. 仅在后端内部使用 id
  2. 使用 REST API (CRUD) 处理资源时使用 uuid
  3. 当您想要在人类更容易读取/识别/理解数据的地方处理资源时,请使用 slug 。不要忘记 slug 必须是唯一的。但对于服务之间的基本 CRUD 操作,我仍然建议继续使用 uuid

我还建议查看有关 Laravel 资源 的 Laravel 文档,这些文档可以帮助您为 API 准备数据,以及 slugify 助手 处理您的数据字段之一的函数。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板