我正在设计我公司正在构建的研究和开发应用程序之一的API层。 API的目的是共享数据库中的数据并提供我们数据的计算功能。Rest API命名约定是否过于冗长?
我的想法是建立一个遵循经典模式中的资源名词控制器端点和休息动词:
GET /api/v1/{organisations}
GET /api/v1/{organisations}/{id}
GET /api/v1/{organisations}/{id}/{offices}
等
是谁递过来的项目开发人员强烈建议我不使用这个惯例,他说公司正在摆脱这个惯例,因为它太冗长,因此效率不高。
他建议采用较少结构化的端点。类似这样的代码:
GET /api/v1/{taxEnvId}/covers
GET /api/v1/{coverId}/occupclasses
例如,第一个url可以是任何东西。我反对说它在效率方面应该不会有太大的改变,而且我所建议的设计的自我记录方面的优势将大于(在我看来)非常小的低效率(在每个请求发送的字节数)由更长的路径引入。
他比我更有经验,所以我想知道我是否在我目前的'设计'中犯了一个错误。
经典动词 - 名词其余名称惯例是否错误? 使用该惯例我看不到任何缺点吗? 他是否正在强调该公约效率低下?
我找不到任何人在互联网上抱怨那个会议,我很乐意听取其他意见,甚至是重定向到书籍和链接,这些让我更好地评估这部分设计。
我没有看到他的设计有任何优势。为什么该ID在描述该ID所代表的内容之前?这对我来说完全是不直观的。他能描述这种设计的“效率”收益吗?因为我没有单独通过URL看到它们。 – David
不要拖延你的想法,但我听说GraphQL是下一个REST –
总之,关于建议的选项。我认为'/ covers?id = {taxEnvId}'会更“有效” –