在 REST API GET 请求中指定参数
Specifing parameters in REST API GET request
我希望能够在一个请求中指定产品的图像大小,对此我有不同的想法,它们是:
mysuperstore.com/api/categories/40/products/53?width=100&height=100
我认为这是不好的做法,因为不清楚宽度和高度是什么意思,可能是产品的物理尺寸。
另一种变体是:
mysuperstore.com/api/categories/40/products/53/image?width=100&height=100
看起来还不错,但是我这种情况下要请求两次,好像是另一个资源id(图片)。
第一个请求是针对产品
mysuperstore.com/api/categories/40/products/53/
第二个是图片 URL
mysuperstore.com/api/categories/40/products/53/image?width=100&height=100
是的,我不需要 return 原始图像(数据),而只是 URL。
我正在使用 Slim Framework 在 PHP 服务器上创建 API。我找到了一个带有可选参数
的 API 请求的示例
$app->get('/archive(/:year(/:month(/:day)))', function ($year = 2010, $month = 12, $day = 05) use ($app) {
echo sprintf('%s-%s-%s', $year, $month, $day);
print_r($app->request()->get());
});
所以前面的URL会匹配这个例子,我可以在一个请求中传递所有需要的参数。
所以我的问题是这样做是否是一个好的做法,也许这个 URL 对于不熟悉 API 的人来说可能会混淆。
mysuperstore.com/api/categories/40/products/53/image?width=100&height=100
所以我要问比我更有经验的人,我的目标是创建无需阅读大量 API 文档即可清楚理解的 API。我的 API 应该遵循所有最佳实践。
这就是我问这个问题的原因,我希望有人能帮助我解决这个问题。
我会这样做:
mysuperstore.com/api/categories/40/products/53/?image[width]=100&image[height]=100
我认为它与 SLIM 框架无关,而是一个设计实现问题。您可以随时查看 guide API 设计最佳实践。
特别是关于图像的问题,您可以遵循苹果或 google 指南,他们使用 image_name[WIDTH]x[HEIGHT].jpeg ,例如:
图像是预先生成的,可在 CDN 上使用。取决于您必须处理的呼叫数量,但动态生成新图像可能会非常耗费负载。至少你应该 store/cache 已经生成图像。
我希望能够在一个请求中指定产品的图像大小,对此我有不同的想法,它们是:
mysuperstore.com/api/categories/40/products/53?width=100&height=100
我认为这是不好的做法,因为不清楚宽度和高度是什么意思,可能是产品的物理尺寸。
另一种变体是:
mysuperstore.com/api/categories/40/products/53/image?width=100&height=100
看起来还不错,但是我这种情况下要请求两次,好像是另一个资源id(图片)。
第一个请求是针对产品
mysuperstore.com/api/categories/40/products/53/
第二个是图片 URL
mysuperstore.com/api/categories/40/products/53/image?width=100&height=100
是的,我不需要 return 原始图像(数据),而只是 URL。
我正在使用 Slim Framework 在 PHP 服务器上创建 API。我找到了一个带有可选参数
$app->get('/archive(/:year(/:month(/:day)))', function ($year = 2010, $month = 12, $day = 05) use ($app) {
echo sprintf('%s-%s-%s', $year, $month, $day);
print_r($app->request()->get());
});
所以前面的URL会匹配这个例子,我可以在一个请求中传递所有需要的参数。
所以我的问题是这样做是否是一个好的做法,也许这个 URL 对于不熟悉 API 的人来说可能会混淆。
mysuperstore.com/api/categories/40/products/53/image?width=100&height=100
所以我要问比我更有经验的人,我的目标是创建无需阅读大量 API 文档即可清楚理解的 API。我的 API 应该遵循所有最佳实践。
这就是我问这个问题的原因,我希望有人能帮助我解决这个问题。
我会这样做:
mysuperstore.com/api/categories/40/products/53/?image[width]=100&image[height]=100
我认为它与 SLIM 框架无关,而是一个设计实现问题。您可以随时查看 guide API 设计最佳实践。
特别是关于图像的问题,您可以遵循苹果或 google 指南,他们使用 image_name[WIDTH]x[HEIGHT].jpeg ,例如:
图像是预先生成的,可在 CDN 上使用。取决于您必须处理的呼叫数量,但动态生成新图像可能会非常耗费负载。至少你应该 store/cache 已经生成图像。