繁体   English   中英

在RESTful API设计中,是否必须通过ID进行获取?

In RESTful API Design, does it have to GET by Id?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

在标准RESTful API中,我们通常使用GET()api/users )返回该资源的所有记录,并使用GET(id) (( api/users/{id} ))返回一条记录。

但是有时候,我们希望获得一个记录,而不是Id 例如,一个GetByName(username)GetByEmail(email)

我们当然不希望调用api/users返回所有内容并过滤掉客户端需要的记录。

一些开发人员实现了多个API点,例如:

api/users/byname/{username}
api/users/byemail/{email}

这是一个好习惯吗? 还是有更好,更RESTful的方式来做到这一点?

1 个回复

我正在开发我的第一个RESTful API,所以我不认为我是专家,但是我相信一般来说,您的端点应该看起来像

api/users?email="me@me.com"

在这里有索引视图,您可以将其发送给参数

1 RESTful API设计:“拥有”资源的ID值

在设计静态API时,在设计URI时要考虑资源所有权。 就我而言,我正在开发一个API,其中我的两个实体将是人员和地址。 每个人可以有多个地址,因此在数据库中,他们将位于不同的表中。 通常,我只使用自动递增键,因此添加的每个新记录都会增加ID号。 我曾想过,如果我使用这种方法,它将 ...

2015-12-25 19:47:18 3 820   api/ rest
2 我的API设计是否违反了RESTful原则?

我目前(我尝试)为社交网络设计RESTful API。 但我不确定我目前的方法是否仍符合RESTful原则。 如果有些明亮的脑袋可以给我一些提示,我会很高兴的。 假设以下URI表示用户帐户的名称字段: 但是有几百个可能的领域。 所以我希望客户端创建自己的字段视图或使用预定义的 ...

3 Netsuite有RESTful API吗? [关闭]

我想做一个与Netsuite集成的iOS应用程序,它应该通过RESTful API完成,但我在他们的网站,互联网甚至与他们的代表交谈时都找不到任何清晰的东西。 有谁知道周围是否有任何文件? 谢谢! ...

4 针对请求元数据(会话ID等)的RESTful API设计最佳实践?

在设计REST API时,传递统计信息和日志记录所需的元数据的最佳实践是什么,但是哪种方法不会改变服务器的响应? 例如,如果我有找最近的公共厕所的服务,我可能想知道用户的位置是否由GPS确定。 或者,如果最终用户的请求通过多个系统,我可能希望传递请求ID进行调试。 据我了解,选项为 ...

5 RESTful API 设计 - 使用资源 URI 与 ID

这是我的第一篇文章,所以请耐心等待。 我正在设计一个新的 RESTful API,并且我在我的客户如何与他们创建的资源交互方面有两个设计选择。 例如,我有一个资源:“book”,它是一个简单的单例资源。 创建一本新书非常简单: 我知道如果我希望操作是幂等的,我也可以使用 PUT。 此问题 ...

6 Django Restful API-使用令牌获取用户ID

如何从具有身份验证令牌的Django API获取用户ID? 基本上,我想发送身份验证令牌并找回用户ID。 我已经尝试过以下解决方案: 如何在Django中返回带有令牌的用户ID? 但是它将返回具有提供的用户名和密码的令牌,这不是我想要的。 ...

7 Node.js Restful API:如何通过ID获取数据

我正在构建一个节点/表达应用程序,我想通过处理id参数来返回特定的数据。 这是我文件的结构: users.js 我的模特 我的控制器 这是我的app.js 我已经在server.js文件中设置了端口和其他配置 如果我运行该应用程序并使用Post ...

10 RESTful查询API设计

我想问问最RESTful的查询方式是什么,我有这个现有的API 很容易确定查询的第一部分, skip和limit ,但是我发现“查询”部分使其他人感到困惑。 查询的意思是 查找每个用户减去使用用户名“ markzu”的查找用户实体 之所以这样定义,是因为内部数据库查询 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM