2017-03-03 4 views
0

JIRA REST API를 사용하여 새로운 문제를 만들려고하는데 시도 할 때마다 다음과 같은 일반적인 오류가 발생합니다. { errorMessages: [ 'Internal server error' ], errors: {} }POST 후 JIRA API가 {errorMessages : [ 'Internal server error'] 오류 : {}}를 반환합니다.

성공적으로 API에서 가져올 수 있으며 연결하려는 자격 증명에 JIRA에 대한 전체 관리자 액세스 권한이 있습니다 (인증 문제가 아님).하지만 POST 할 때마다이 오류가 발생합니다. 아래는 내가 보내는 JSON 데이터 스 니펫입니다. 나는 명백한 것을 놓치고 있습니까?

아래는 내 JavaScript 코드입니다. 참고 npm에서 jira-connector을 사용하고 있습니다. (이 샘플 코드를 사용자 도메인으로 대체 리얼 도메인)

const JiraClient = require('jira-connector'); 

const dotenv = require('dotenv').config(); 

function createNewIssue(fields) { 
const encoded = process.env.JIRA_ENCODED_PW; 

const jira = new JiraClient({ 
    host: 'mydomain.atlassian.net', 
    basic_auth: { 
     base64: encoded 
    } 
}); 

return new Promise((resolve, reject) => { 
    jira.issue.createIssue(fields, (error, issue) => { 
     if (error) { 
      console.log(error); 
      reject(error); 
     } else { 
      console.log(issue); 
      resolve(encoded); 
     } 
    }); 
}) 
} 

아래 위 JS에 fields에 전달되고있는 JSON이다. 참고 customfield_17300은 라디오 버튼이며 customfield_17300은 다중 선택 상자입니다. 두 경우 모두 "id"와 실제 문자열 "name"값을 사용해 보았습니다. 모든 ID가 질문에 같은 문제의 API의 GET에서 직접 찍은 아래 :

{ 
"fields": { 
    "project": { 
     "id": "13400" 
    }, 
    "summary": "TEST API TICKET - 01", 

    "issuetype": { 
    "id": "11701" 
}, 

    "customfield_14804": { "id": "13716" }, 

    "customfield_14607": "Hardware", 

    "customfield_17300": [ 
    { 
    "id": "18322" 
    } 
] , 

    "customfield_16301": "Customer PO", 

    "customfield_14800": "LA, California", 

    "customfield_16302": "FEDEX 234982347g" 
} 
} 

답변

1

한숨 나는이 비밀 오류가 잘못된 JSON에 의한했다 정확했다 ... 다른 게시물을 알아 냈다.

내 경로에서 fields은 실제로는 fields 값으로 직접 들어가는 대신에 비둘기 인 req.body.fields에서 오는 것으로 전달되었습니다. JSON을 JIRA로 보내면 fields 외부 래퍼가 누락되었습니다. 나는 req.body.fields 대신에 req.body을 따라 가기 위해 나의 길을 바 꾸었습니다.

... 재미 있었어 4 시간 ...

+0

덧붙여서, 나는 작업 로그와는 다른 문제가 있었지만 코멘트는 아니 었습니다. 우리 UI의 날짜 스타일 "22/Nov/17 02:54 PM"을 사용하고 싶었지만 작동하지 않았고 ISO-8601에 의지해야했지만 여전히 GNU date 유틸리티가 제공하는 형식을 수정해야했습니다. . TZ에서 콜론을 제거하고 나노초가 있는지 확인해야했습니다. 나는 또한 'timeSpentSeconds' 숫자 값 주위에서 따옴표를 제거했습니다. – Pysis