当前位置: 首页 > 知识库问答 >
问题:

对象列表的API命名约定

成浩漫
2023-03-14

根据在这里找到的命名约定:https://restfulapi.net/resource-naming/,我有一个无法找到答案的特定问题。

以customers和accounts为例,可以使用URN“/customers/{customerId}/accounts”标识特定“customer”的子集合资源“accounts”,如何为多个客户ID查找accounts?这种情况的命名约定是什么?

是使用过滤器的唯一选择吗?例如:customers/accounts?customerid=12,22

共有1个答案

王旺
2023-03-14

我倾向于避免过滤器,并将所有内容作为URN保存,并隐藏后端系统的实现。例如这个

customers/accounts?customerId=12,22

意味着客户机需要知道客户在系统中由一个名为CustomerID的变量表示。客户不应该知道这一点。他们只需要知道客户有号码,无论如何。

此答案显示了您的情况的解决方案,如下所示:

customers/accounts/12,22
customers/12,22/accounts
 类似资料:
  • 我正在使用laravel Elount数据对象访问我的数据,命名我的表、列、外键/主键等的最佳方式是什么? 我发现,有很多命名惯例。我只是想知道哪一个最适合Laravel雄辩的模特。 我正在考虑以下命名约定: 单数表名(例如:Post) 单列名称(例如:userId-post表中的用户id) 表格名称中多个单词的驼峰式大小写(例如:PostComment、PostReview、PostPhoto)

  • 问题内容: 在这种情况下,您具有“传输对象”(仅带有getter / setter的POJO),这些数据通过客户端库传递到您的API,命名传输对象的最佳方法是什么? 在此示例中,您的主类和传输对象都具有名称。它们位于不同的程序包中,但我认为使用相同的名称会造成混淆。是否有关于命名传输对象的最佳实践? 问题答案: 我通常在类名的末尾添加“ DTO”,并将所有DTO放在其自己的包中。在您的示例中,我将

  • 问题内容: 我已经用C ++编写了一个Python模块,并将其构建为共享对象库,并且运行良好。但是在弄清所有问题的同时,我注意到(通过strace)Python会寻找一些不同的变体。特别地,当我说时,Python按顺序搜索: foo(目录) foo.so foomodule.so foo.py foo.pyc 除了foomodule.so以外,这一切都是可以理解的。为什么Python会同时以nam

  • 为了在跨API开发中向开发者提供一致的开发体验,所有的命名应该保证: 简单 直观 一致 这适用于接口、资源、集合、方法以及消息的命名。 因为很多开发者并非以英语作为母语,所以命名约定的目标之一是确保大多数开发者可以更容易理解 API。对于方法和资源,我们鼓励使用简单、直观和一致的单词来命名。 API 中的命名应该使用正确的美式英语。例如,使用美式英语的 license 而非英式英语的 licenc

  • 在本节,我们不会讨论适用于大规模和可维护的最佳 CSS 命名方案,因为这不仅仅超过了个人的能力范围,也不是一个Sass样式指南可以解决的问题。我个人推荐遵从 CSS Guidelines 的建议。 良好的命名对保持整体代码的一致性和可读性非常重要,在 Sass 中可以命名的地方如下: 变量; 函数; 混合宏。 由于 Sass 占位符遵循和类名相同的命名模式,因此被视为常规的 CSS 选择器,也就在

  • 函数名 小技巧 使用小写字母,并用下划线分隔单词。使用双冒号 :: 分隔库。函数名之后必须有圆括号。关键词 function 是可选的,但必须在一个项目中保持一致。 如果你正在写单个函数,请用小写字母来命名,并用下划线分隔单词。如果你正在写一个包,使用双冒号 :: 来分隔包名。大括号必须和函数名位于同一行(就像在Google的其他语言一样),并且函数名和圆括号之间没有空格。 # Single fu