如何通过 rest API 更新问题状态
本文关键字:更新 问题状态 API rest 何通过 | 更新日期: 2023-09-27 18:31:58
我想从 REST API 将问题状态更新为已完成或 true,我尝试了一些链接和文档,但它失败了并且不起作用,我的 JSON 数据和 URL 如下,请看一下并让我知道我错在哪里。
我点击此链接将问题状态更新为已完成。
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"}}}
我检查了小提琴手的响应,但在提琴手响应中出现以下错误。
{"错误消息":["需要'字段'或'更新'之一"],"错误":{}}
之后,我更改了我的 JSON 数据,如下所示,这也不起作用,
{"update":{"status":{"id":"10635","name":"done"}}}
然后我看到小提琴中的错误如下。
{"errorMessages":["无法反序列化 java.util.Array START_OBJECT List 的实例,而不是 [来源: org.apache.catalina.connector.CoyoteInputStream@19d2e36;行: 1, 列: 12] (通过参考链: com.atlassian.jira.rest.v2.issue.IssueUpdateBean[''"update''"])"]}
它杀死了我大约 2.5 小时,请帮助我错在哪里?
我使用了错误的方法,要将 Jira 事务的状态设置为完成,您必须向服务器发送两个请求 (1) 获取请求,该请求将返回问题的事务 ID。(2)在事务ID的帮助下向服务器发布请求,您可以完成问题,我尝试演示以下内容。
(1) 使用以下 url 向 JIRA 服务器发送获取请求(POST 请求将使用相同的 URL)。
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"
}
}
对我来说,字段属性不是必需的,所以我能够将问题状态更新为已完成。:)