2015-04-24 2 views
6

Я хочу, чтобы иметь возможность указать размер изображения продукта в одном запросе, у меня есть разные представления об этом, вот они:параметров задав в запросе GET REST API

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/ 

Второй один для URL изображения

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

Да, мне нужно, чтобы не возвращать сырые изображения (данные), но только URL.
Я создаю API на сервере PHP, используя Slim Framework. Я нашел пример такого запроса 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 должен следовать всем лучшим практикам.

Вот почему я задаю этот вопрос, надеюсь, кто-то может мне помочь в этом.

ответ

3

Я хотел бы сделать это:

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

Спасибо, что я последую вашим советам. – cbyoueyq

0

Я думаю, что его не связано с SLIM рамок, но более вопрос реализации дизайна. Вы всегда можете проверить это guide на лучший дизайн API.

Для вашего вопроса о изображении, в частности, вы можете следить за яблоком или Google руководством, они используют имя_образ [WIDTH] х [ВЫСОТА] .jpeg, например:

http://a4.mzstatic.com/us/r30/Purple7/v4/c2/36/25/c2362536-f6fc-4ef6-2a03-9b899ca00af9/screen480x480.jpeg

Изображение предварительно сгенерированы и доступны на CDN. В зависимости от того, сколько звонков вам придется обрабатывать, но генерировать новые изображения «на лету», может быть очень загруженным. По крайней мере, вы должны хранить/кешировать уже сгенерированные изображения.

Смежные вопросы