我有3个客户端库都发布到相同的API端点,只是使用不同的语言(python,ruby,php)。我希望能够告诉特定API调用来自哪个库。
我最初的想法是将一些信息附加到HTTP POST / GET,这将识别客户端库,但我不确定这是否是一个好方法。
您如何验证API调用源自哪个库?
提前感谢您的帮助!
答案 0 :(得分:1)
大多数请求库都设置了默认的User-Agent标头。反思那个标题。
Python urllib2
将该标头设置为Python-urllib/MAJOR.MINOR
,其中后两个值取自Python版本。对于Python 2.7,您可以获得Python-urllib/2.7
。其他Python库(如requests
)也有唯一的默认User-Agent标头。
Ruby的Net :: HTTP库appears to set it to Ruby
。
当然,这些库中的每一个都完全能够更改用户代理字符串,但是大多数开发人员都不会打扰这些设置,除非服务器似乎根据该字符串改变他们的响应string(并且除了桌面浏览器用来访问服务器的用户代理字符串之外,不允许任何其他内容)。