0

我正在尝试通过 RESTful 在 Redmine (V 2.3.4) 中创建一个问题。我已阅读文档并尝试了不起作用的示例(HTTP 代码:404)。

POST http://easyredmine.digitronic.com/issues.xml
<?xml version="1.0"?>
<issue>
    <project_id>1</project_id>
    <subject>Example</subject>
    <priority_id>4</priority_id>
</issue>

然后我尝试了这个并且它起作用了:

POST http://easyredmine.digitronic.com/projects/isda/issues.xml
<?xml version="1.0"?>
<issue>
    <project_id>1</project_id>
    <subject>Example</subject>
    <priority_id>4</priority_id>
</issue>

我正在使用 taskadapter Redmine API,它以第一种形式发送请求。

4

3 回答 3

0

在第一种情况下,您会得到 404 Not Found,因为必须将问题添加到的项目(ID = 1)不存在。在第二种情况下,元素 project_id 中的值将被忽略,因为您已经在 URL 中指定了项目标识符。

于 2014-03-30T07:54:31.700 回答
0

我将 redmine rest api 与 ruby​​ 一起使用,create 方法对我有用。我使用 json 而不是 xml。我的 web 服务看起来像这样

id=-1
url = Configuration.redmine+"/issues.json"
uri = URI.parse(url)
req = Net::HTTP::Post.new(uri.request_uri)
req.basic_auth(user, pass)
req["Content-Type"] = "application/json"

payload = {
    issue: {
        project_id:project_id,
        tracker_id:tracker_id,
        status_id:status_id,
        priority_id:priority_id,
        subject:subject,
        description:description,
        fixed_version_id:fixed_version_id,
        author_id:author_id,
    }
}
req.body = payload.to_json

http = Net::HTTP.new(uri.host, uri.port)

response = http.request(req)
if response.code=="201"
  data = JSON.parse(response.body)
  id=data["issue"]["id"]
end

 return id
end

这是红宝石代码。希望对您有所帮助

于 2019-06-27T16:45:58.557 回答
0

您必须指定内容类型标头,否则您将获得 404

于 2017-11-08T23:09:53.543 回答