2011-10-02 2 views
1

tailles d'écran Jusqu'à présent toutes mes miniatures ont été 150x150. Je voudrais prendre en charge différentes tailles de vignettes, afin de traiter différents modèles Android/iPhone.la conception d'un api REST qui prend en charge plusieurs

J'ai réfléchi de cette façon de supporter plusieurs tailles. Toujours travailler avec des vignettes carrées pour rendre les choses plus simples.

Obtenir une vignette 75x75

GET http://example.com/gallery?resolution=75 
... 
{ 
    "id": 1001, 
    "thumbnail": "http://lh5.ggpht.com/EEIl3_hedJSAT4RscoceShtWy3DE4WGKXXNp4rusI-kpzWfDIbzrWx1KVywf9YqGI-elD_k4xg8bUemeRTtLgtAPOlVc0kpw=s75" 
} 

Obtenir une 150x150 miniature

GET http://example.com/gallery?resolution=150 
... 
{ 
    "id": 1001, 
    "thumbnail": "http://lh5.ggpht.com/EEIl3_hedJSAT4RscoceShtWy3DE4WGKXXNp4rusI-kpzWfDIbzrWx1KVywf9YqGI-elD_k4xg8bUemeRTtLgtAPOlVc0kpw=s150" 
} 

Je l'ai vu a vu beaucoup d'API qui ne prend pas en charge les formats personnalisés, par exemple l'api flickr supporte les formats petits, moyens, grands et originaux.

ce api peut-il être amélioré en quelque sorte?

Répondre

1

Eh bien, vous pouvez avoir des valeurs fixes comme l'API Flickr (Small, Medium, Large Original). Ce que vous pouvez faire est de pré-rendre et de les stocker, ce qui signifie que vous pouvez les récupérer directement sur le disque ou le cache plutôt que de les rendre à la volée. Votre demande URL peut alors ressembler à quelque chose comme:

GET http://example.com/gallery?resolution=small 

Toutefois, si vous voulez offrir la plus grande flexibilité, vous devez continuer avec la façon dont vous faites l'API maintenant et permet de spécifier la taille carré de l'API utilisateur. Vous devriez avoir un maximum fixe intégré pour arrêter les abus. Un exemple de ceci serait le Gravatar API qui a un maximum fixe de 512px et la taille peut être spécifiée avec le paramètre s= dans l'URL.

A la fin, il dépend de votre rapport coût/bénéfice. Serait-il beaucoup plus difficile de maintenir une API de taille souple plutôt que d'une taille fixe pré-rendu (s) API et ne rend à la volée ont besoin d'investir davantage dans les serveurs/RAM/bande passante, etc.

+0

réponse Nice. J'utilise Google AppEngine et son BlobStore peut fournir une taille d'image différente facilement et à moindre coût. L'api Gravatar est très sympa. – neoneye

+0

En tant que développeur si j'appliquais votre API, j'apprécierais la flexibilité, mais si vous utilisez Flickr, il est facile de comprendre pourquoi il y a un compromis car à cette échelle, c'est beaucoup plus facile (Capacité/Mémoire du Serveur/Rendu sage) pour traiter les états d'image pré-rendus pour eux –

Questions connexes