2015-04-24 1 views
6

je veux avoir la possibilité de spécifier la taille de l'image d'un produit dans une requête, j'ai différentes idées à ce sujet, ils sont là:paramètres specifing dans l'API REST GET demande

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

Je pense que cela est mauvaise pratique, car on ne sait pas ce que signifie la largeur et la hauteur, peut-être qu'il y a une taille physique du produit.

Une autre variante est la suivante:

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

Il semble assez bon, mais je dois faire deux demandes dans ce cas, il semble que c'est une autre ressource id (image).

première demande est pour le produit

mysuperstore.com/api/categories/40/products/53/ 

La deuxième est pour l'URL de l'image

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

Oui, je n'a pas besoin de retourner l'image brute (données), mais juste URL.
Je crée une API sur un serveur PHP en utilisant Slim Framework. Je trouve un exemple de cette demande de l'API avec des paramètres facultatifs

$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()); 
}); 

Donc, l'URL précédente correspondra cet exemple et je peux passer tous les paramètres requis dans une requête. Donc, mes questions sont si c'est une bonne pratique de le faire, peut-être que cette URL peut être difficile à comprendre pour quelqu'un qui ne connaît pas l'API.

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

Je demande donc quelqu'un de plus expérimenté dans ce que moi, mon objectif est de créer API qui peut être comprendre clairement sans lire des tonnes de documentation de l'API. Et mon API devrait suivre toutes les meilleures pratiques.

C'est pourquoi je pose cette question, j'espère que quelqu'un peut m'aider dans ce domaine.

Répondre

3

je ferais ceci:

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

Merci de suivre vos conseils. – cbyoueyq

0

Je pense que ce ne est pas racontai cadre SLIM mais plus une question de mise en œuvre de la conception. Vous pouvez toujours vérifier cette guide sur les meilleures pratiques de conception API.

Pour votre question sur l'image en particulier, vous pouvez suivre Apple ou ligne directrice de Google, ils utilisent image_name x [WIDTH] [HAUTEUR] .jpeg, ex:

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

Images sont pré-générés et disponibles sur CDN. En fonction du nombre d'appels que vous devrez gérer, générer de nouvelles images à la volée peut être très consommateur de charge. Au moins, vous devriez stocker/mettre en cache les images déjà générées.