RESTful关注

时间:2010-09-07 16:18:17

标签: rest resources

我对RESTful资源有疑问,与其他question类似。

我们还在开发一个可以访问REST服务的iPhone应用程序,但其中一个问题是第一个屏幕会对服务进行一些调用,而且它应该只是一个(资源的一个dto)。 / p>

我正在尝试尽可能保持服务的RESTful,所以我想知道如何访问它清理。

我在考虑将iphone(或任何其他设备)视为资源,并且此dto是属性。 URI将是这样的:

example.com/rest/Device/iphone/HomeScreen

这样的事情是可以接受的还是有更好的解决方案?

由于 贝

4 个答案:

答案 0 :(得分:1)

我会说,如果你能够汇总你想要推送的所有数据,并将其命名为有意义的东西,那可能比你现有的更好。

无论你最终调用那个结构,我都会称之为“foo”,例如,/ torest / foo的GET会返回

我同意限制应用程序的干扰很重要,因为您拥有应用程序和服务,并且可能没有其他人会使用您的服务。

答案 1 :(得分:1)

你在做什么恕我直言是完全可以接受的。当您的资源更多地关注客户端UI的要求时,REST原则更容易应用。

我确实做了你正在做的事情:

http://myserver.com/desktop/{dataset}/shell
http://myserver.com/shopclient/{dataset}/login
http://myserver.com/mobile/{dataset}/home

答案 2 :(得分:0)

iPhone就像一个特殊的客户端,它需要以特殊方式格式化的输出(就像AJAX有时需要使用HTML格式的JSON)。

因此我建议尽可能缩短网址:

example.com/rest/HomeScreen

现在您已在控制器中确定请求的格式(html,json,iphone)。您可以通过确定用户代理或附加如下扩展名来执行此操作:

example.com/rest/HomeScreen.iphone
example.com/rest/HomeScreen.html
example.com/rest/HomeScreen.xml

等。

答案 3 :(得分:0)

我不会设计一个HomeScreen资源(它感觉非常特定于前端)。你的HomeScreen显示什么?我宁愿将HomeScreen上显示的模型显示为HomeScreen模型本身。

我们有使用REST api的iphone应用程序,它正在调用多个资源(多个调用)。应用程序感觉非常快,因为使用了“性能提升器”(缓存,控制有效负载大小,压缩)。

关于内容协商,我认为iphone的可互操作格式就足够了(json或xml)。然后,移动设备可以按照自己的喜好呈现此模型。