gpt4 book ai didi

api - 如何设计具有多个输入参数的 RESTful URL

转载 作者:行者123 更新时间:2023-12-04 05:08:02 24 4
gpt4 key购买 nike

我正在努力创建一个使用 Spring MVC 的基于 Java 的 RESTful API。

现在对于一些 API 端点——需要多个不同的参数......我不是在谈论值列表——更像是参数 1、参数 2、参数 3、参数 4 等等——其中所有 4 个(或更多)参数也有不同的数据类型。

我如何为上述场景设计 API 端点 URL,例如为 4 个单独的输入参数?是否有任何推荐的方法/最佳实践来执行此操作?或者我是否简单地连接 4 个值,每对值由“/”等分隔符分隔?

从用户评论编辑:

示例:我必须根据 4 个输入参数检索自定义对象("file")——(整数)用户 ID、(整数)文件 ID、(字符串)类型和(字符串)用户类型。我应该简单地创建一个 REST 端点,如“getfile/{userid}/{fileid}/{type}/{usertype}-- 还是有更好的(或推荐的方法)来构建这样的 REST 端点?

最佳答案

在 REST 中,首先考虑资源并提出不可变的永久链接(不会改变)来识别该资源。

因此,在您的示例中(在评论中),您说要检索用户和类型(文件类型或用户类型?)的文件资源。

因此,从足够的信息开始,以识别资源。如果 id 是唯一的,那么无论拥有该文件的用户如何,这都足以识别资源:

/files/{fileId}

如果文件可以更改所有者,这对于 url 也很重要 - 请记住,我们只想使用所需的组件来标识资源,以便它可以是永久链接。

您还可以列出特定用户的文件:
/users/{userId}/files/

响应将包含文件列表,列表中的每个项目都将包含文件链接 (/files/{fileId})

如果由于某种原因文件 id 不是唯一的,而仅在用户上下文中是唯一的(文件不会更改所有者并且用户内的 id 递增 - 奇怪),那么您将需要这些组件来识别资源:
/users/{userId}/files/{fileId}

还要注意基于描述的顺序。在那种奇怪的情况下,我们说文件在逻辑上由用户包含和标识,这也是 url 结构中的包含。

希望有帮助。

关于api - 如何设计具有多个输入参数的 RESTful URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15263278/

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