我正在尝试为Android创建购物应用程序,因为我正在我的商店网站上构建REST API
我想优化并带给用户更好的体验
所以我的问题是产品,类别和商店的其他部分的图像根据网络浏览器调整大小,因此移动设备的尺寸相对较大。
所以我决定在请求中优化这个传递当前的宽度和高度。
所以我想知道做这个的最佳做法和网址是什么。
现在我有以下网址
mysuperstore.com/api/categories/40/products/53
因此,首次安装应用程序时,图像设置会保存在设备上的某个位置,而不是用于使用网站API请求产品。
我想过这样的事情
mysuperstore.com/api/categories/40/products/53?width=100&height=100
但在这种情况下宽度和高度的含义似乎很奇怪?
我还考虑过在POST请求中传递参数,但POST请求用于在服务器上存储内容。
所以请在我的情况下建议网址应该是什么样的,最佳做法是什么,或者这样做。
提前致谢。
答案 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方法。
最常用的产品信息
mysuperstore.com/api/categories/40/products/53
产品图片的方法不同;因为,与产品信息相比,图像尺寸会很大,有些客户可能不需要它。
mysuperstore.com/api/categories/40/products/53/image?width=100&height=100
其他详情或额外信息
mysuperstore.com/api/categories/40/products/53/details
当然,我的服务包含所有信息。
mysuperstore.com/api/categories/40/products/53/all
正如您在问题中所说,POST / PUT / DELETE方法将保留用于更新产品信息。
通过这种设计,我的客户可以选择。大多数情况下,将使用正常的产品服务和产品图像服务。最少使用的信息不会在网络中传播。
答案 1 :(得分:0)
假设您的目标是限制要返回的信息量,更好的方法是允许客户端指定服务器应返回的字段。例如,如果100x100是视网膜显示器怎么办?对于有良好眼睛的人,可以显示更多信息。这取决于客户做出决定,而不是服务器。