我有一个API,可以接收来自网站,Android设备和ios设备的请求。 现在,我必须存储在创建它们的API调用中创建的实体。 因此,例如,如果用户从他的Android应用程序创建了一个新实体,我还应该在该实体中存储该信息。 我的问题是我应该如何在API上实现它。我有3种方法可以做到这一点:
1 - 让api用户在请求正文上发送新字段。 我不喜欢这种方法,因为发送的数据并非实际上是指创建的实体,它更像是元信息。
2 - 让api用户发送一个新标题,例如“X-Origin:android” 我不喜欢这个,因为当我只能使用User-Agent标题时,我并不热衷于为该信息创建一个新标题。
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的行为方式。该实体仍将被创建,但没有额外的信息。
这样做的最佳方式是什么?
答案 0 :(得分:0)
我真的没有看到1或2的问题.3我会因为你列出的原因而避免,而且它是一个移动的目标。