RESTAPI中的资源建模(timeseries数据和多标识符问题)
我在为域中的资源建模以适应RESTAPI时遇到了一些困难。这个例子显然是精心设计和简化的,但它说明了我遇到的两个问题 我知道:RESTAPI中的资源建模(timeseries数据和多标识符问题),api,rest,Api,Rest,我在为域中的资源建模以适应RESTAPI时遇到了一些困难。这个例子显然是精心设计和简化的,但它说明了我遇到的两个问题 我知道: 用户有宠物 宠物有多个名字——每个家庭成员都有一个名字 宠物有:出生日期、死亡日期和类型(狗、猫…) 我需要能够查询基于日期(实际上,日期,或日期范围是强制性的,当询问有关宠物)。例如:告诉我现在有什么宠物;告诉我奶奶说我们5年前到3年前养了什么宠物 我应该如何处理日期? a。在查询字符串中:/pets/dogs/d123?from=10102010&to=101020
感谢您的帮助。谢谢在这种情况下可能有用的是一种资源查询语言。它不知道您使用的技术堆栈,但是可以找到一个JavaScript示例
400错误请求
状态代码。就个人而言,我会通过查询字符串查找默认状态和日期/users/grandma/dogs/rex
或:
/dogs/filter
,它将接受POST
请求,并在主体中包含filter。这样一来,描述整个查询以及发送查询都会容易得多。正如我提到的,这不是一种宁静的方法,但是在这种情况下它似乎是合理的。这样的过滤也可以用纯REST设计建模——过滤器也将成为一种资源超媒体似乎不是这种特殊情况下的发展方向——老实说,我不太喜欢超媒体设计。如果需要,可以使用查询字符串,这方面没有限制。路径包含层次结构部分,而查询包含非层次结构部分,但这也不是必需的 通过查询,我建议您考虑参数以及响应中的内容。例如: 我想知道那只叫雷克斯的狗(是谁,我还是奶奶?) 参数是:
rex
和grandman
,您需要在响应中使用dog
s
因此,超链接将类似于
GET/pets/dogs/?owner=grandma&name=rex
或GET/pets/dogs/owner:grandma/name:rex/
,等等。。。如果您将一些RDF元数据附加到超链接和参数(例如,您可以使用vocab),则URI结构实际上并不重要。Ofc。这不是最好的选择,因为它不涉及多人给出的多个姓名,但如果您决定使用RDF,这是创建自己的vocab的一个良好开端。谢谢您的回答。我正在查看链接。第二点(颠倒关系)我没有想到,所以即使在这种情况下我可能不会这么做,也要记住这是一件有趣的事情。@AnaF,当然。让我知道你的想法。
/dogs/rex/owners/grandma