我在为域中的资源建模以适应REST API时遇到了一些麻烦.这个例子显然是做作和简化的,但它说明了我陷入困境的两点.
我知道:
我该如何处理日期?
一个.在查询字符串中:/ pets/dogs/d123?from = 10102010&to = 10102015(但据我了解,查询字符串主要用于可选参数;日期/日期范围是必需的.我在考虑将当前日期作为默认值,如果查询字符串中没有任何内容.有任何想法?)
湾 在路径的某个地方.之前/宠物?当我在日期和日期范围之间切换时,这似乎有点奇怪.而我真正的道路已经很长了
我该如何处理多个名字?
我看到它的方式,我必须指定谁使用我正在搜索的名称.
/ pets/dogs/rex - >我想知道叫做rex的狗(由谁,我还是奶奶?).但在哪里放奶奶?
我看到有些人说不要担心网址,并使用超媒体但我理解的方式(而且我可能错了)是你必须始终从根(这里/宠物)开始并遵循响应中提供的链接.然后我就更加困难了(因为这个日期确实很长很多).
任何帮助表示赞赏.谢谢
我正在开发 REST api,并考虑通过使用 Loopback 框架来减少开发时间。
我喜欢这个框架的很多东西(而且它似乎符合我的需求),但我完全不喜欢这个:
http://localhost:3000/api/users?filter[where][username]=john&filter[where][email]=callback@strongloop.com
http://localhost:3000/api/users?filter={"where":{"username":"john","email":"callback@strongloop.com"}}
Run Code Online (Sandbox Code Playgroud)
如果您有一个作为 REST api 公开的模型,那么您的 url 就是这样的。对我来说,这两种选择看起来都很奇怪而且有点丑陋。当你看到这样的例子时,事情看起来就更奇怪了/cars?filter[where][miles][gt]=5000。
那么,我可以以某种方式更改所有公开模型的 url 形式吗?(更传统的东西)。我真的很想要普通的查询字符串,例如:
http://localhost:3000/api/users?username=john&email=callback@strongloop.com
Run Code Online (Sandbox Code Playgroud)
他们看起来像这样,有什么原因让我应该欣赏而不是外表吗?有没有使用这种语法的 REST api?
谢谢