是否有适当的标头用于在REST Api中发送客户端库信息?

时间:2017-07-03 20:45:43

标签: rest http http-headers api-design

我想在调用RESTful API时发送我的客户端库的标识符。我们有Java,C#,Ruby,Python等客户端库。例如,我的Java客户端库可以发送:

User-Agent: java/1.10.2

为我的应用程序使用User-Agent标头或自定义标头是否更好?用户代理标题似乎更多地用于浏览器,我还没有找到一个使用标头的API用于客户端库。

修改

  1. 我们的客户使用客户端库来使用我们的API,它处理所有请求和响应逻辑。这只是调用API的简单方法。
  2. 该信息仅用于统计信息,并帮助我们确定客户在发生错误时使用的客户端库版本。

1 个答案:

答案 0 :(得分:1)

我认为User-Agent是此方案中的合适标题。

根据WikipediaUser-Agent是:

  

用户代理是代表用户行事的软件(软件代理)...在许多情况下,用户代理充当用于内部通信的网络协议中的客户端客户端 - 服务器分布式计算系统。特别是,超文本传输​​协议(HTTP)使用用户代理标头识别发起请求的客户端软件,即使客户端不是由用户操作也是如此。

因此,要成为用户代理,它应该是:

  1. 一个软件
  2. 网络协议中的客户端
  3. 代表用户
  4. 根据相关描述,客户端库(软件)用于使用API​​(代表用户)并处理 ALL 请求&响应逻辑(网络协议中的客户端),这使得它完全遵循上述定义。

    此外,客户端库信息的使用通常是普通浏览器User-Agent的用途。