Php 在RESTAPI GET请求中指定参数
我希望能够在一个请求中指定产品的图像大小,对此我有不同的想法,如下所示:Php 在RESTAPI GET请求中指定参数,php,android,api,http,slim,Php,Android,Api,Http,Slim,我希望能够在一个请求中指定产品的图像大小,对此我有不同的想法,如下所示: mysuperstore.com/api/categories/40/products/53?width=100&height=100 我认为这是不好的做法,因为不清楚宽度和高度是什么意思,可能是产品的物理尺寸 另一个变体是: mysuperstore.com/api/categories/40/products/53/image?width=100&height=100 看起来很不错,但我必须提出两个
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
是的,我不需要返回原始图像(数据),只需要返回URL。我正在使用Slim框架在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将匹配此示例,我可以在一个请求中传递所有必需的参数
所以我的问题是,如果这样做是一种好的做法,那么对于不熟悉API的人来说,这个URL可能会混淆
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框架无关,更多的是一个设计实现问题。您可以随时在API设计最佳实践中检查这一点 特别是关于图像的问题,您可以遵循苹果或谷歌的指导原则,他们使用图像名称[WIDTH]x[HEIGHT]。jpeg,例如:
图像是预生成的,可在CDN上使用。根据需要处理的电话数量,动态生成新图像可能非常耗时。至少您应该存储/缓存已生成的图像。谢谢,我会听从您的建议。