2013-10-03 78 views
0

我有一個API,它接受來自網站,android設備和ios設備的請求。 現在,我必須存儲在創建它們的API調用中創建的實體中。因此,例如,如果用戶從他的android應用程序創建了一個新的實體,我還應該在該實體中存儲該信息。 我的問題是我應該如何在API上實現它。我有3種方法做到這一點:什麼是確定一個REST API的請求呼叫源的最佳方式

1 - 使api用戶發送請求正文上的新字段。 我不喜歡這個問題,因爲發送的數據實際上並不涉及創建的實體,它更像是元信息。

2 - 使api用戶發送一個新的標題,例如「X-Origin:android」 我不喜歡這個,因爲我不喜歡爲這些信息創建一個新標題的想法當我只能使用User-Agent頭部時。

3 - 使用用戶代理頭 這是我正在照顧的人,但我真的可以相信這個嗎?很多具有如此多不同頭文件的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)"

,則不需要此信息,因此不suplying它不會改變API的行爲方式。該實體仍將被創建,但沒有額外的信息。

這樣做的最好方法是什麼?

回答

0

我真的沒有看到1或2的問題。3我會避免你列出的原因,再加上它是一個移動的目標。

+0

我結束了自定義頁眉解決方案,似乎是最乾淨的方式。謝謝。 – biggahed

相關問題