Web サイト、Android デバイス、および iOS デバイスからのリクエストを受け取る API があります。ここで、作成元の API 呼び出しで作成されたエンティティに格納する必要があります。したがって、たとえば、ユーザーが Android アプリから新しいエンティティを作成した場合、そのエンティティにもその情報を保存する必要があります。私の質問は、API でそれをどのように実装する必要があるかです。私はそれを行う3つの方法があります:
1 - API ユーザーがリクエストの本文でその新しいフィールドを送信するようにします。送信されるデータは実際には作成されたエンティティを参照するのではなく、メタ情報に似ているため、このアプローチは好きではありません。
2 - 「X-Origin: android」などの新しいヘッダーを API ユーザーに送信させるユーザー エージェント ヘッダー。
3 - User-Agent ヘッダーを使用する これは私が使用する傾向にあるものですが、これを本当に信頼できますか? 非常に多くの異なるヘッダーを持つ非常に多くの Android デバイス。Android アプリでは、Apache の HTTP クライアントを使用しているため、送信するヘッダーは
'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)"
この情報は必須ではないため、提供しなくても API の動作は変わりません。エンティティは引き続き作成されますが、追加情報はありません。
これを行う最善の方法は何ですか?