Die beste Möglichkeit, öffentliche und interne Identifikatoren in der Laravel REST API mithilfe von UUID- und Slug-Spalten zu verwalten
P粉360266095
P粉360266095 2024-03-28 13:41:30
0
1
355

Ich habe eine Tabelle mit der klassischen Auto-Inkrement-ID und dem Firmennamen. Um zu vermeiden, dass die Geschäfts-ID dem Kunden offengelegt wird, möchte ich eine UUID verwenden. So weit, ist es gut. Das einzige Problem besteht darin, dass es für den Aufruf über eine URL besser ist, ein benutzerfreundlicheres Format zu verwenden, z. B. „api/businesses/my-business“ anstelle von „api/businesses/10b940f2-5f8c-42ac-9c35-b6d0de45995b“. ". Wenn ich also eine „Slug“-Spalte zur Tabelle für GET-Anfragen hinzufüge, während ich UUID für Datenaktualisierungen verwende, wäre dies eine bewährte Vorgehensweise?

In meinem Fall muss ich einen Datensatz in der Angebotstabelle erstellen, also wäre der 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

Antworte allen(1)
P粉262073176

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

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

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

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage