代码之家  ›  专栏  ›  技术社区  ›  TWith2Sugars

平静的关切

  •  1
  • TWith2Sugars  · 技术社区  · 15 年前

    question

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

    我试图保持尽可能安静的服务,所以我想知道如何访问它。

    我在考虑将iphone(或任何其他设备)作为一种资源,而dto是一种属性。URI如下所示:

    example.com/rest/Device/iphone/HomeScreen
    

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

    谢谢

    4 回复  |  直到 8 年前
        1
  •  1
  •   Darrel Miller    15 年前

    你现在所做的是完全可以接受的。当您的资源更关注客户机UI的需求时,REST原则就更容易应用。

    http://myserver.com/desktop/{dataset}/shell
    http://myserver.com/shopclient/{dataset}/login
    http://myserver.com/mobile/{dataset}/home
    
        2
  •  1
  •   MStodd    15 年前

    我想说的是,如果你能把所有你想推到电线上的数据汇总起来,并把它命名为有意义的东西,那可能会比你现在拥有的更好。

        3
  •  0
  •   sled    15 年前

    因此,我建议尽量缩短网址:

    example.com/rest/HomeScreen
    

    现在您必须在控制器中确定所请求的格式(html、json、iphone)。您可以通过确定用户代理或附加以下扩展来完成此操作:

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

    等。

        4
  •  0
  •   manuel aldana    15 年前

    我不会设计一个主屏幕资源(它感觉非常前端具体)。你的主屏幕显示什么?我宁愿把显示在主屏幕上的模型暴露为主屏幕模型本身。

    我们的iphone应用程序使用restapi调用多个资源(多个调用)。尽管如此,这个应用程序感觉非常快,因为使用了“性能提升器”(缓存、有效负载大小控制、压缩)。

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