Это мой первый вопрос о stackoverflow; Мне нужно сделать запрос на отправку (используя класс inputBean/pojo для необходимых параметров) и получить ответ (используя класс outputBean/pojo для сопоставления ответа json) с помощью jira rest api, в настоящее время я использую трикотаж для выполнения unmarshallowing вещи с JSON и аннотации, вот код:JIRA REST API, java request/response
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, что я хотел бы вместо этого получает экземпляр ответа, как джерси один, у которого есть дополнительная информация, связанная с ним, как статус ответа + ответ объекта (с использованием этого кода единственное, что я получаю, это сущность); я искал что-то подобное в jira rest api, но ничего не нашел.
я мог бы неясно, если enyone готов помочь мне, я буду рад прояснить любые сомнения
я решил, окружающие «пост запроса» с попыткой поймать (когда запрос оленьей кожи вернется 201 он бросает это исключение ведьма имеет некоторые полезные данные, такие как
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;
}
Решено поймать RestClientException, спасибо – 3Daygg
Да, если вы хотите просто получить атрибуты в ситуациях с ошибками, то поймать исключение - хорошее место. – rorschach