gpt4 book ai didi

Restful API 命名约定

转载 作者:行者123 更新时间:2023-12-04 01:23:44 24 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

7年前关闭。



Improve this question




所以我和我的老板在这里不同意,也找不到任何关于它的信息。场景:我想获取某个组织的所有用户。网址应该是什么?
mydomain.com/users/by/organisation/{orgId}

mydomain.com/organisation/{orgId}/users
我们的论点:

情况 1:该调用应返回“用户”,因此“资源”(调用的第一部分)应与其相关。

情况 2:组织“拥有”/"is"用户的父级,因此组织应该是第一位的。

你有什么想法?

更新:
我不担心 mydomain.com/{resource} 之后会发生什么.问题主要与 HTTP 操作(GET、POST、PUT、DELETE)是否应该与第一个资源相关 mydomain.com/users或者是否应该反射(reflect)关系mydomain.com/organisations/users/ .

最佳答案

您可能知道 REST 没有严格的规则,您或多或少可以随意实现它,但这是我的 2 美分

mydomain.com/users/by/organisation/{orgId}

然而,这听起来像是一个不错的 url,因为它通过阅读告诉你它做了什么,这不是一个好主意。通常,每个 url 段指定一个存在或可以存在的资源。

在这种情况下, users代表一种或多种资源, organisation 也是如此,但是 by不,它可能只是一个词来帮助澄清 API 的作用。

The call is expected to return "users" and therefore the "resource" (first part of the call) should relate to it.



资源不一定在 url 的第一部分中指定。如果您愿意,它可以是第 2 个、第 3 个或第 10 个
mydomain.com/organisation/{orgId}/users

这看起来好多了,但我认为有 1 点改进。您应该重命名 organisationorganisations , 匹配 users

mydomain.com/organisations/{orgId}

然后获取 ID 为 orgId 的组织,和
mydomain.com/organisations/{orgId}/users

获取属于该组织的所有用户。

要进一步缩小范围,您可以这样做
mydomain.com/organisations/{orgId}/users/{userId}

获取属于一个特定组织的特定用户

UPDATE: I am not to worried about what comes after the mydomain.com/{resource}. The question relates mostly to whether the HTTP action (GET, POST, PUT, DELETE) should relate to the first resource mydomain.com/users or whether it should reflect the relationship mydomain.com/organisations/users/.



要回答您的更新:

我上面已经提到了;资源不一定在 url 的第一部分中指定。如果通过将所需资源移到 url 的后面来提高 url 的质量,请继续这样做

关于Restful API 命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24037852/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com