Ash*_*ain 3 c# jira fiddler jira-rest-api
我想从其余 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);
}
})
Run Code Online (Sandbox Code Playgroud)
我的json如下
{"status":{"id":"10635","name":"done"}}}
Run Code Online (Sandbox Code Playgroud)
我检查了 fiddler 上的响应,但在 fiddler 响应中出现以下错误。
{“errorMessages”:[“需要‘字段’或‘更新’之一”],“错误”:{}}
之后我将 json 数据更改如下,但也不起作用,
{"update":{"status":{"id":"10635","name":"done"}}}
Run Code Online (Sandbox Code Playgroud)
然后我在小提琴中看到了如下错误。
{“errorMessages”:[“无法从 START_OBJECT 令牌中反序列化 java.util.ArrayList 的实例\n [来源: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 服务器发送 Get 请求(POST 请求将使用相同的 url)。
https://mycompany.com/rest/api/2/issue/{issueidORkey}/transitions?expand=expand.fields
Run Code Online (Sandbox Code Playgroud)
它将以 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"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如上所示,您可以看到有过渡 --> id=25,此 id 将用于 POST 请求,对我来说,我创建了如下 JSON,现在 (2) 通过与上面使用的相同的 url 发送 POST 请求。
{
"update": {
"comment": [{
"add": {
"body": "Comment body"
}
}]
},
"fields": {},
"transition": {
"id": "25"
}
}
Run Code Online (Sandbox Code Playgroud)
对于我来说,字段属性不是必需的,因此我能够更新问题状态已完成。:)
| 归档时间: |
|
| 查看次数: |
7715 次 |
| 最近记录: |