Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在RESTAPI GET请求中指定参数_Php_Android_Api_Http_Slim - Fatal编程技术网

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上使用。根据需要处理的电话数量,动态生成新图像可能非常耗时。至少您应该存储/缓存已生成的图像。

谢谢,我会听从您的建议。