我想从其余的api更新问题状态为完成或真实,我尝试了一些链接和文档,但它失败了并且没有用,我的json数据和网址正在关注,请看看,让我知道我在哪里我错了。
我按照此link将问题状态更新为已完成。
jQuery.ajax({
url :'https://myurl.com/rest/api/latest/issue/10635',
type: 'PUT',
beforeSend : function(xhr) {
xhr.setRequestHeader("Authorization", "Basic " + 'QXNjiYIklOZvcxlxhZ3NodXNldA==');
},
data: JSON.stringify({"status":{"id":"10635","name":"done"}}}),
dataType: 'json',
contentType:'application/json; charset=utf8',
success: function(data){
console.log(data);
}
})
我的json正在关注
{"status":{"id":"10635","name":"done"}}}
我检查了小提琴手上的回复,但我在小提琴响应中收到了以下错误。
{" errorMessages":["其中一个'字段'或者'更新'所需&#34],"错误":{}}
之后我改变了我的json数据如下并且也没有用,
{"update":{"status":{"id":"10635","name":"done"}}}
然后我看到了小提琴中的错误如下。
{" errorMessages":["无法在[来源:org.apache.catalina.connector.CoyoteInputStream]的START_OBJECT令牌中反序列化java.util.ArrayList实例@ 19d2e36; line:1,column:12](通过引用链:com.atlassian.jira.rest.v2.issue.IssueUpdateBean [\" update \"])"]}
它杀了我2.5小时左右,在我错的地方帮忙?
答案 0 :(得分:1)
我使用了错误的方法,将状态设置为Jira问题已完成,您必须向服务器发送两个请求(1)获取请求,该请求将返回问题的事务ID。 (2)在事务ID的帮助下向服务器发布请求可以使问题完成,我尝试演示以下内容。
(1)使用以下网址向JIRA服务器发送获取请求(相同的网址将用于POST请求)。
https://mycompany.com/rest/api/2/issue/{issueidORkey}/transitions?expand=expand.fields
它会将以下类型的细节返回到json模式。
{
"expand": "transitions",
"transitions": [
{
"id": "25",
"name": "Start Progress",
"to": {
"self": "https://mycompany.com/rest/api/2/status/3",
"description": "This issue is being actively worked on at the moment by the assignee.",
"iconUrl": "https://mycomapny.com/images/icons/statuses/inprogress.png",
"name": "In Progress",
"id": "3",
"statusCategory": {
"self": "https://mycompany.com/rest/api/2/statuscategory/4",
"id": 4,
"key": "indeterminate",
"colorName": "yellow",
"name": "In Progress"
}
}
}
}
如上所述,您可以看到有过渡 - > id = 25,这个id将用于POST请求,对于我,我创建了JSON,如下所示 (2)通过我上面使用的相同URL发送POST请求。
{
"update": {
"comment": [{
"add": {
"body": "Comment body"
}
}]
},
"fields": {},
"transition": {
"id": "25"
}
}
对于我来说字段属性不是必需的,所以我能够将问题状态更新为已完成。 :)