使用RESTAPI重新挖掘创建问题
我试图通过RESTful在Redmine(v2.3.4)中创建一个问题。我已经阅读了文档,并尝试了不起作用的示例(HTTP代码:404)使用RESTAPI重新挖掘创建问题,rest,redmine,redmine-api,Rest,Redmine,Redmine Api,我试图通过RESTful在Redmine(v2.3.4)中创建一个问题。我已经阅读了文档,并尝试了不起作用的示例(HTTP代码:404) POSThttp://easyredmine.digitronic.com/issues.xml 1. 例子 4. 然后我尝试了这个,它成功了: POST http://easyredmine.digitronic.com/projects/isda/issues.xml <?xml version="1.0"?> <issue>
POSThttp://easyredmine.digitronic.com/issues.xml
1.
例子
4.
然后我尝试了这个,它成功了:
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>
POSThttp://easyredmine.digitronic.com/projects/isda/issues.xml
1.
例子
4.
我使用的是taskadapter Redmine API,它以第一种形式发送请求。在第一种情况下找不到404,因为必须添加问题的项目(ID=1)不存在。在第二种情况下,元素project_id中的值被忽略,因为您已经在URL中指定了项目标识符。您必须指定一个内容类型头,否则您将得到一个404我将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
这是ruby代码。希望对您有所帮助您启用过吗?谢谢您的回复。我已经执行了这个请求:GET,我收到了一个id为39的项目。当我尝试使用ID 39发出请求时,我得到了相同的错误。如果您得到404或没有,请尝试获取。也可以使用项目字符串标识符代替项目数字ID。最后,查看Redmine日志文件,寻找任何线索。
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