Разработка REST API, который поддерживает несколько размеров экрана

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

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

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

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

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

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

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

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

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам