RESTful API网址最佳实践GET与POST

时间:2015-04-19 07:50:53

标签: android rest http url

我正在尝试为Android创建购物应用程序,因为我正在我的商店网站上构建REST API 我想优化并带给用户更好的体验 所以我的问题是产品,类别和商店的其他部分的图像根据网络浏览器调整大小,因此移动设备的尺寸相对较大。
所以我决定在请求中优化这个传递当前的宽度和高度。

所以我想知道做这个的最佳做法和网址是什么。

现在我有以下网址

mysuperstore.com/api/categories/40/products/53

因此,首次安装应用程序时,图像设置会保存在设备上的某个位置,而不是用于使用网站API请求产品。

我想过这样的事情

   mysuperstore.com/api/categories/40/products/53?width=100&height=100 

但在这种情况下宽度和高度的含义似乎很奇怪?

我还考虑过在POST请求中传递参数,但POST请求用于在服务器上存储内容。

所以请在我的情况下建议网址应该是什么样的,最佳做法是什么,或者这样做。

提前致谢。

2 个答案:

答案 0 :(得分:0)

您的网址应该显示您想要的内容。现在,您正在申请产品;因此,宽度和高度没有意义。

mysuperstore.com/api/categories/40/products/53?width=100&height=100

我想要产品图片在下面的网址;因此,宽度和高度更有意义。

mysuperstore.com/api/categories/40/products/53/image?width=100&height=100

我通常希望我的服务精益求精;因此,我会设计我的服务如下。所有选择都将使用GET方法,其他服务将使用其他HTTP方法。

  1. 最常用的产品信息

    mysuperstore.com/api/categories/40/products/53

  2. 产品图片的方法不同;因为,与产品信息相比,图像尺寸会很大,有些客户可能不需要它。

    mysuperstore.com/api/categories/40/products/53/image?width=100&height=100

  3. 其他详情或额外信息

    mysuperstore.com/api/categories/40/products/53/details

  4. 当然,我的服务包含所有信息。

    mysuperstore.com/api/categories/40/products/53/all

  5. 正如您在问题中所说,POST / PUT / DELETE方法将保留用于更新产品信息。

  6. 通过这种设计,我的客户可以选择。大多数情况下,将使用正常的产品服务和产品图像服务。最少使用的信息不会在网络中传播。

答案 1 :(得分:0)

假设您的目标是限制要返回的信息量,更好的方法是允许客户端指定服务器应返回的字段。例如,如果100x100是视网膜显示器怎么办?对于有良好眼睛的人,可以显示更多信息。这取决于客户做出决定,而不是服务器。