确定客户端使用哪个客户端库的最佳方法是什么?

时间:2014-10-14 18:06:44

标签: rest http-post http-get api-design

我有3个客户端库都发布到相同的API端点,只是使用不同的语言(python,ruby,php)。我希望能够告诉特定API调用来自哪个库。

我最初的想法是将一些信息附加到HTTP POST / GET,这将识别客户端库,但我不确定这是否是一个好方法。

您如何验证API调用源自哪个库?

提前感谢您的帮助!

1 个答案:

答案 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(并且除了桌面浏览器用来访问服务器的用户代理字符串之外,不允许任何其他内容)。