2013-10-03 5 views
0

У меня есть API, который обрабатывает запросы с веб-сайта, устройств Android и устройств ios. Теперь я должен хранить в объектах, которые создаются в вызовах API, из которых они были созданы. Так, например, если пользователь создал новый объект из своего приложения android, я должен также сохранить в этом объекте эту информацию. Мой вопрос в том, как я должен реализовать это в API. У меня есть 3 способа сделать это:Каков наилучший способ определения происхождения запроса запроса в REST API

1 - Сделать api-пользователя отправить это новое поле в тело запроса. Мне не нравится этот aproach, потому что отправляемые данные не актуальны для созданного объекта, это больше похоже на метаинформацию.

2 - Сделать api пользователем отправить новый заголовок, например «X-Origin: android» Мне это не нравится, потому что я не увлекаюсь идеей создания нового заголовка только для этой информации когда я мог просто использовать заголовок User-Agent.

3 - Использование заголовка User-Agent Это тот, к которому я стремлюсь, но могу ли я действительно этому доверять? Так много устройств Android с большим количеством разных заголовков. В приложение для Android, я использую HTTP-клиент Apache, так что заголовок он посылает это

'User-Agent': 'Apache-HttpClient/UNAVAILABLE (java 1.4)'

Хотя я могу получить с System.getProperty («http.agent») «правильный» заголовок, который для моего телефона:

"Dalvik/1.6.0 (Linux; U; Android 4.3; Nexus 4 Build/JWR66Y)"

Эта информация не требуется, поэтому не suplying это не изменит способ API поведение. Объект будет создан, но без дополнительной информации.

Каков наилучший способ для этого?

ответ

0

Я действительно не вижу проблемы ни с 1, ни с 2. 3 Я бы избегал причин, которые вы перечисляете, плюс это движущаяся цель.

+0

Я в конечном итоге пошел с пользовательским решением заголовка, кажется, самый чистый способ. Благодарю. – biggahed

Смежные вопросы