无法使客户端 API Redmine 身份验证

Can't make client API Redmine authentication

我正在尝试制作 android 应用程序 - API Redmine 的客户端。首先我需要的是身份验证,但我真的不明白如何实现它。 (使用改造)文档只说:

Most of the time, the API requires authentication. To enable the API-style authentication, you have to check Enable REST API in Administration -> Settings -> API. Then, authentication can be done in 2 different ways:

  1. using your regular login/password via HTTP Basic authentication. using your API key which is a handy way to avoid putting a password in a script. The API key

  2. may be attached to each request in one of the following way:

  • passed in as a "key" parameter
  • passed in as a username with a random password via HTTP Basic authentication
  • passed in as a "X-Redmine-API-Key" HTTP header (added in Redmine 1.1.0)

You can find your API key on your account page ( /my/account ) when logged in, on the right-hand pane of the default layout.

我找到了这个解决方案:

  1. HTTP Basic auth – http://login:password@redmine.org/issues.xml
  2. HTTP Basic auth with API token and login – http://login:RANDOM_KEY@redmine.org/issues.xml- (not >supported yet)
  3. HTTP Basic auth with API token – http://RANDOM_KEY:X@redmine.org/issues.xml
  4. Full token auth – http://redmine.org/issues.xml?key=RANDOM_KEY

但它不起作用。 API Redmine 的所有开源客户端都在使用类似自己的 servers/domains 之类的东西——我不明白。示例:

     - http://**my.server**/projects/test.xml?key=1234
     - http://**localhost:3000**/news.xml?key=01fc3e3832e32ae8c12bf0c3b0819ca4a5972825
     - https:**sample.redmine.com**/

我需要一些帮助来理解这是什么(粗体文本)。如果没有这个

,我无法提出我的要求,或者 BASE_URL 在 Retrofit 中

Redmine 是一个开源软件包。因此,人们将它安装在自己的服务器上,这使得他们的 Redmine 安装在他们自己的主机名(可能还有子路径)上可用。

因此,在实现 Redmine 客户端时,通常需要一种方法让客户端的用户配置其 Redmine 服务器的基础 URL,例如 https://www.redmine.orghttp://server.example.com:8080/redmine.

您与客户一起生成的所有 API 请求都是相对于此基础 URL 的。但同样,每个用户的基础 URL 可能不同,需要由他们指定。