gpt4 book ai didi

REST资源相关数据

转载 作者:行者123 更新时间:2023-12-02 04:41:59 25 4
gpt4 key购买 nike

我已经创建了一个 REST API,但我想我遇到了一个 RESTful 问题。

它与以下问题有关:

我有一个名为“案例”的资源。案例还包含相关数据,例如用户和消息。问题是我想从案例中获取相关的查询用户和消息数据,但我不确定 URI 设计。还有不同种类的相关/计算数据。这些相关数据应用于创建数据可视化。

虽然我获取案例/用户/消息的方式是 RESTful 的:

http://example.com/cases (and with id for a single case)
http://example.com/cases/{id}/users (same idea as above)
http://example.com/cases/{id}/messages (same idea as above)

我创建相关资源的第一个想法是(我认为 URI 看起来不对,它可能有点 RPC?):

相关数据1:

http://example.com/cases/{id}/analysis/messages-network-traffic

{
"sender": "an user jack",
"receiver": "an user steph",
"amount_messages": 51
},
{
"sender": "an user test",
"receiver": "an user test4",
"amount_messages": 3
}
...

相关资料2:

http://example.com/cases/{id}/analysis/messages-timeline?receiver=testuser1&sender=testuser2
{
"amount_messages": 24,
"timestamp": 1387321576
},
{
"amount_messages": 50,
"timestamp": 1387321576
}
...

这些是对 URI 设计的正确思考(虽然我认为它是一种 RPC),还是我应该怎么做?因为我看不出有任何理由像相关问题那样创建报告资源。该数据只是对现有资源的计算。

提前谢谢你。

最佳答案

仅仅因为您可以提供一个实现并不意味着这样做是有意义的。例如,对 http://example.com/cases 执行 PUT 可能没有意义。你会 PUT 而不是 http://example.com/cases/1 或类似的东西。具体实例。同样,在 http://example.com/cases/1 上执行 POST 可能也没有意义。您可以使用 REST 语法来决定应用程序的语义。

我没有发现您的 REST 设计有任何问题 - 只要端点以“声明式”方式命名,就可以了。如果他们有一些“程序性”名称,例如:http://example.com/cases/goDoSomething,那将引起关注。

请记住,您的 REST 设计是您的客户用来与您的服务对话的“语言”,因此设计该语言时要使通信具有声明性并适合手头的任务。为用户设计,而不是为了您在后端的方便。

关于REST资源相关数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20646635/

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