разработка REST API, который поддерживает несколько размеров экрана - PullRequest
1 голос
/ 02 октября 2011

До сих пор все мои эскизы были 150x150. Я хотел бы поддерживать разные размеры миниатюр, чтобы иметь дело с разными моделями Android / iPhone.

Я рассматривал этот способ поддержки нескольких размеров. Всегда работаю с квадратными миниатюрами, чтобы сделать вещи проще.

Получение миниатюры 75x75

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

Получение миниатюры 150x150

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

Я видел множество API, которые не поддерживают нестандартные размеры, например поддержка flickr api малого, среднего, большого и оригинального размера.

Можно ли как-нибудь улучшить этот API?

1 Ответ

1 голос
/ 02 октября 2011

Ну, вы можете иметь фиксированные значения, такие как Flickr API (Small, Medium, Large и Original).То, что вы могли бы сделать, - это предварительно отрендерить и сохранить их, что означает, что вы можете напрямую извлекать их с диска или из кэша, а не рендерить на лету.Ваш URL-адрес запроса может выглядеть примерно так:

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

Однако, если вы хотите обеспечить максимальную гибкость, вам следует продолжить работу с API сейчас и позволить пользователю API указать размер квадрата.,Вы должны иметь фиксированный максимум, встроенный, чтобы остановить злоупотребления.Примером этого может служить Gravatar API , который имеет фиксированный максимум 512 пикселей, а размер можно указать с помощью параметра s= в URL.

В конце концов, это зависит от вашегосоотношение затрат и выгод.Будет ли существенно сложнее поддерживать API гибкого размера, а не API предварительно фиксированного размера (размеров), и требует ли рендеринг на лету больших вложений в серверы / оперативную память / полосу пропускания и т. Д.

...