2013-02-28 2 views
0

Этот вопрос больше ориентирован на развитие серверной части.Стратегии проектирования API-интерфейсов REST для всех типов клиентских устройств

При написании REST API я хочу написать его таким образом, чтобы его можно было использовать как для настольных, так и для мобильных приложений.

могли бы увидеть два возможных подхода:

  1. Каждый API должен поддерживать пагинацию и ответственность должны быть переданы клиенту, сколько данных должно быть извлечена на одном дыхании. Таким образом, мобильные приложения будут запрашивать меньше страниц за один раз, а настольные приложения будут запрашивать больше.

  2. Отдельные API для мобильных устройств, размещаемые отдельно. Интерфейсный веб-сервер может проверять агент пользователя (то есть источник, откуда идет запрос), и если это мобильное устройство, затем перенаправить запрос на сервер, на котором размещены API для мобильных устройств.

Заинтересованы в том, чтобы узнать больше об этом.

Оцените свои входы.

+0

Я пытаюсь понять, что оправдывало бы поддержание 2-х кодовых баз, серверных стеков, конечных точек и т. Д. В чем разница, какой тип устройства влияет на ваш API? Как вы говорите, вы можете обрабатывать размер полезной нагрузки через параметры по запросам. Какие существуют другие соображения? – sasfrog

ответ

0

Я бы предложил немного (1) и (2), вот как это сделать.

Вместо того, чтобы перестраивать весь новый api для мобильных устройств, иметь адаптеры для всех поддерживаемых устройств. у вас есть слой поверх вас REST API-реализации, который отображает/инструктирует базовую службу возвращать контент, подходящий для выбранного мобильного устройства.

Приходя к разбивке на страницы, вы можете параметризовать разбивку на страницы как входные данные абстракции, упомянутой выше.

+0

Спасибо .. это полезно .. – user2118353

0

Я бы порекомендовал что-то поближе к опции (1). Если основным различием между клиентами будет количество данных, которое они запрашивают за раз, кажется тривиальным добавить какой-то параметр запроса или HTTP-заголовок в REST API, указывающий, сколько записей, например, нужно вернуть.

Полагаясь на то, что заголовок User-Agent может потребовать, чтобы вы поддерживали список известных пользовательских агентов клиента и сопоставлялись с ними, что было бы дополнительными расходами на обслуживание отдельного API.

+0

Спасибо Stuart! – user2118353