EchoAction.java 2.2 KB
Newer Older
R
test  
roo00 已提交
1 2 3 4 5 6 7 8 9 10
package com.x.base.core.project.jaxrs.echo;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.container.AsyncResponse;
import javax.ws.rs.container.Suspended;
import javax.ws.rs.core.Context;

Z
zhourui 已提交
11
import com.x.base.core.project.annotation.DescribeScope;
R
test  
roo00 已提交
12 13 14 15 16 17 18 19 20
import com.x.base.core.project.annotation.JaxrsDescribe;
import com.x.base.core.project.annotation.JaxrsMethodDescribe;
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
import com.x.base.core.project.jaxrs.ResponseFactory;
import com.x.base.core.project.jaxrs.StandardJaxrsAction;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;

Z
zhourui 已提交
21 22 23 24 25 26 27
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.tags.Tag;

@Tag(name = "EchoAction", description = "应用响应接口.")
R
test  
roo00 已提交
28
@Path("echo")
Z
zhourui 已提交
29
@JaxrsDescribe(value = "应用响应接口.", scope = DescribeScope.system)
R
test  
roo00 已提交
30 31
public class EchoAction extends StandardJaxrsAction {

Z
zhourui 已提交
32 33 34
	private static final String OPERATIONID_PREFIX = "EchoAction::";

	private static final Logger LOGGER = LoggerFactory.getLogger(EchoAction.class);
R
test  
roo00 已提交
35

Z
zhourui 已提交
36 37
	@Operation(summary = "获取应答.", operationId = OPERATIONID_PREFIX + "get", responses = {
			@ApiResponse(content = @Content(schema = @Schema(implementation = ActionGet.Wo.class))) })
R
test  
roo00 已提交
38 39 40 41 42 43 44 45 46
	@JaxrsMethodDescribe(value = "获取应答.", action = ActionGet.class)
	@GET
	public void get(@Suspended final AsyncResponse asyncResponse, @Context ServletContext servletContext,
			@Context HttpServletRequest request) {
		ActionResult<ActionGet.Wo> result = new ActionResult<>();
		EffectivePerson effectivePerson = this.effectivePerson(request);
		try {
			result = new ActionGet().execute(effectivePerson, servletContext);
		} catch (Exception e) {
Z
zhourui 已提交
47
			LOGGER.error(e, effectivePerson, request, null);
R
test  
roo00 已提交
48 49
			result.error(e);
		}
R
update  
roo00 已提交
50
		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
R
test  
roo00 已提交
51 52
	}
}