用Jira API REST创build一个问题

当我尝试通过Jira API REST创build问题时,出现500 Internal server error ,我成功地从具有get-request的项目中获得问题,但是当我尝试请求后创build新问题时,没有工作我得到的错误。

这是我的JavaScript代码:

 createIssue: function(req, res) { var Http = require('machinepack-http'); process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; Http.sendHttpRequest({ url: '/rest/api/2/issue/', baseUrl: 'https://jira.mydomain.com', method: 'post', data: { "fields": { "project": { "key": "TEST" }, "summary": "REST ye merry gentlemen.", "description": "Creating of an issue using project keys and issue type names using the REST API", "issuetype": { "name": "Bug" } } }, headers: { "Authorization": "Basic YWxbG9wMS4zp0bWFuzeThYS5l1TIqaXoxOTg5554Jh" }, }).exec({ serverError: function(result) { res.send("server error" + JSON.stringify(result)) }, success: function(result) { res.send("issue has been created succefly"); }, }); } 

错误内容:

 { "body": "{\"errorMessages\":[\"Internal server error\"],\"errors\":{}}", "headers": "{\"server\":\"nginx/1.6.0\",\"date\":\"Tue, 14 Apr 2015 13:45:38 GMT\",\"content-type\":\"application/json;charset=UTF-8\",\"transfer-encoding\":\"chunked\",\"connection\":\"close\",\"x-arequestid\":\"945x246734x1\",\"set-cookie\":[\"JSESSIONID=838923A79DA31F77BDD62510399065CF; Path=/; HttpOnly\",\"atlassian.xsrf.token=BQIV-TVLW-FGBG-OTYU|63c1b4a7b87a9367fff6185f0101c415f757e85b|lin; Path=/\"],\"x-seraph-loginreason\":\"OK\",\"x-asessionid\":\"ughpoh\",\"x-ausername\":\"alaa\",\"cache-control\":\"no-cache, no-store, no-transform\",\"x-content-type-options\":\"nosniff\"}", "status": 500 } 

使用params而不是data

JS: –

 createIssue: function(req, res) { var Http = require('machinepack-http'); process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; Http.sendHttpRequest({ url: '/rest/api/2/issue/', baseUrl: 'https://jira.mydomain.com', method: 'post', params: { "fields": { "project": { "key": "TASC" }, "summary": "REST ye merry gentlemen.", "description": "Creating of an issue using project keys and issue type names using the REST API", "issuetype": { "name": "Bug" } } }, headers: { "Authorization": "Basic YWxbG9wMS4zp0bWFuzeThYS5l1TIqaXoxOTg5554Jh" }, }).exec({ serverError: function(result) { res.send("server error" + JSON.stringify(result)) }, success: function(result) { res.send("issue has been created succefly"); }, }); } 

参考

它看起来像是在试图parsingproject或者issuetype字段的时候需要一些非空值,尽pipe没有完整的issuetype ,这很难确定。

您可以尝试将id属性添加到projectissuetype字段中:

 params: { "fields": { "project": { "key": "TASC", "id": "10001" }, "summary": "REST ye merry gentlemen.", "description": "Creating of an issue using project keys and issue type names using the REST API", "issuetype": { "id": "1", "name": "Bug" } } } 

显然你要确保在这两种情况下使用适当的值。