2016-09-13 13 views
1

これは私の最初の質問です。私はポストリクエスト(必要なパラメタのためのinputBean/pojoクラスを使用)を作成し、jiraレスポンスAPIを使用してレスポンス(outputBean/pojoクラスを使用してjsonレスポンスをマップする)を取得する必要があります。JIRA REST API、Javaリクエスト/レスポンス

public Resource create(CreateIssueRequest createIssueRequest) { 

    //creating the issue builder with project key and issuetype 
       IssueInputBuilder issueBuilder = new IssueInputBuilder(
         createIssueRequest.getFields().getProject().getKey() 
        ,createIssueRequest.getFields().getIssueType().getCodeName()); 

    //setting issue fields using the inputBean 
       issueBuilder.setSummary(createIssueRequest.getFields().getSummary()); 
       issueBuilder.setDescription(createIssueRequest.getFields().getDescription()); 

    //requesting the issue creation method , BasicIssue contains the same fields as my outputbean , this whole thing is the request 
       BasicIssue issue = jiraClient.getClient().getIssueClient().createIssue(issueBuilder.build()).claim(); 

    //creating the output bean 
       CreateIssueResponse createIssueResponse = new CreateIssueResponse(
         issue.getId(), 
         issue.getKey(), 
         issue.getSelf()); 

       try { 
       jiraClient.getClient().getMetadataClient().getStatus(new URI("localhost:8080/rest/api/2/issue")); 
      } catch (URISyntaxException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } 
       Resource resource = new Resource(); 

      try { 
       jiraClient.getClient().close(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

      resource.setData(createIssueResponse); 
      return resource; 
} 

私はこのコードを使用して達成するために管理することは、問題を作成し、outputbean対応を求めている、私が代わりに希望することはジャージのようなレスポンスのインスタンスを取得している:JSONと注釈のために、ここでのコードだとunmarshallowing事そのレスポンスのステータス+エンティティレスポンス(このコードを使用して取得する唯一のものはエンティティです)のような、より多くの情報が添付されています。私はジラの残りのAPIで何か類似のものを探しましたが、何も見つかりませんでした。

enyoneは私を助けるために喜んでいる場合、私は私は疑問

を明確にするために喜んでいるよ、不明確だったかもしれない

API:https://developer.atlassian.com/jiradev/jira-apis/jira-rest-apis/jira-rest-api-tutorials/jira-rest-api-example-create-issue

私はトライキャッチで「ポスト要求」を取り巻く解決

(リクエストが201を返すdoes notのとき、それはあなたが見ることができるように、その例外の魔女が

try{ 

       issue = jiraClient.getClient().getIssueClient().createIssue(issueBuilder.build()).claim(); 

       }catch(RestClientException e){ 

        ErrorResource error = new ErrorResource(); 
        error.setStatus(e.getStatusCode().get()); 
        error.setDetail(e.getLocalizedMessage()); 
        error.setTitle("An error occurred while creating the issue"); 
        resource.setErrors(new ArrayList<ErrorResource>()); 
        resource.getErrors().add(error); 
        return resource; 

       } 

答えて

1

のようないくつかの有用なデータを保持し、公式のJIRA RESTクライアントが応答を抽象化し、唯一のあなたのオブジェクト(複数可与えスロー)、それから返されました。
クライアントを引き続き使用する場合は、クライアントに到達する前に応答をキャッチするフィルタまたはインターセプタなどを作成する必要があります。

+0

catch RestingClientException、thanks – 3Daygg

+0

エラー状況で属性を取得したい場合は、例外をキャッチするのが適切です。 – rorschach

関連する問題