为所有类型的客户端设备设计REST API的策略

时间:2013-02-28 06:02:58

标签: api rest

问题更多针对服务器端开发。

编写REST API时,我希望以一种桌面和移动应用程序可以使用它的方式编写它。

可以看到两种可能的方法:

  1. 每个API都应该支持分页,并且应该将责任委托给客户端一次性获取多少数据。因此,移动应用程序将一次性要求更少的页面,桌面应用程序将要求更多。

  2. 单独托管的移动设备的单独API。前端Web服务器可以检查用户代理(即来自请求来源的来源)以及是否是移动设备,然后将请求重新路由到托管移动设备API的服务器。

  3. 有兴趣了解更多相关策略。

    感谢您的投入。

2 个答案:

答案 0 :(得分:0)

我会推荐更接近选项(1)的东西。如果客户端之间的主要区别在于他们一次请求的数据量,那么向REST API添加某种查询参数或HTTP标头似乎是微不足道的,这表明要返回多少记录。

依赖于检查User-Agent标头可能需要您维护已知客户端用户代理的列表并与之匹配,这将是单独API的额外维护成本。

答案 1 :(得分:0)

我会建议一点(1)和(2),这是如何。

不要为移动设备本身重新构建全新的api,而是为所有支持的设备提供适配器。即在您的REST API实现之上有一个层,它呈现/指示底层服务返回适合所选移动设备的内容。

进入分页时,您可以将分页参数化为上述抽象的输入。