用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
属性添加到project
和issuetype
字段中:
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" } } }
显然你要确保在这两种情况下使用适当的值。