gpt4 book ai didi

java - JIRA REST API,java请求/响应

转载 作者:行者123 更新时间:2023-11-30 07:09:16 31 4
gpt4 key购买 nike

这是我在 stackoverflow 上的第一个问题;我需要使用 jira rest api 发出发布请求(使用 inputBean/pojo 类来获取所需参数)并获取响应(使用 outputBean/pojo 类来映射 json 响应),目前我正在使用 jersey 来执行使用 json 和注释进行解码,代码如下:

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;
}

我使用这段代码成功实现的是创建一个问题并获取相应的输出bean,我想要的是获取一个类似 Jersey 的响应实例,它附加了更多信息,例如该响应的状态+实体响应(使用此代码我得到的唯一结果就是实体);我在 jira rest api 中寻找过类似的东西,但什么也没找到。

我可能不清楚,如果有人愿意帮助我,我很乐意澄清任何疑问

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

我用 try catch 解决了“post request”问题(当请求不返回 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;

}

最佳答案

如您所见,官方 JIRA REST 客户端抽象了响应,只为您提供从中返回的对象。
如果您想继续使用客户端,您需要创建一个过滤器或拦截器或在响应到达客户端之前捕获响应的东西。

关于java - JIRA REST API,java请求/响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39470338/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com