54.3. Spring 부팅 구현
이 섹션에서는 Spring Boot에서 Swagger2Feature를 사용하는 방법을 설명합니다.
OpenAPI 3 구현의 경우 OpenApiFeature(org.apache.cxf.jaxrs.openapi.OpenApiFeature
)를 사용합니다.
54.3.1. 빠른 시작 예
빠른 시작 예(https://github.com/fabric8-quickstarts/spring-boot-cxf-jaxrs)
는 Spring Boot에서 Apache CXF를 사용하는 방법을 보여줍니다. 빠른 시작에서는 Spring Boot를 사용하여 Swagger가 활성화된 CXF Cryostat-RS 끝점을 포함하는 애플리케이션을 구성합니다.
54.3.2. Swagger 활성화
Swagger 활성화에는 다음이 포함됩니다.
REST 애플리케이션에서는 다음을 수행합니다.
Swagger2Feature 가져오기:
import org.apache.cxf.jaxrs.swagger.Swagger2Feature;
CXF 끝점에 Swagger2Feature 추가:
endpoint.setFeatures(Arrays.asList(new Swagger2Feature()));
예를 들면 55.1 예제 REST 애플리케이션 을 참조하십시오.
Java 구현 파일에서 서비스에 필요한 각 주석에 대한 Swagger API 주석을 가져옵니다.
import io.swagger.annotations.*
여기서 * =
Api
,ApiOperation
,ApiParam
,ApiResponse
,ApiResponses
등입니다.자세한 내용은
https://github.com/swagger-api/swagger-core/wiki/Annotations
을 참조하십시오.예를 들면 55.2 예제 Java 구현 파일 을 참조하십시오.
Java 파일에서 hieradata-RS 주석이 있는 끝점(
@PATH
,@PUT
,@POST
,@GET
,@Produces
,
,@
DELETE@PathParam
등)에 Swagger 주석을 추가합니다.예를 들면 55.3 예제 Java 파일 예 을 참조하십시오.
55.1 예제 REST 애플리케이션
package io.fabric8.quickstarts.cxf.jaxrs; import java.util.Arrays; import org.apache.cxf.Bus; import org.apache.cxf.endpoint.Server; import org.apache.cxf.jaxrs.JAXRSServerFactoryBean; import org.apache.cxf.jaxrs.swagger.Swagger2Feature; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; @SpringBootApplication public class SampleRestApplication { @Autowired private Bus bus; public static void main(String[] args) { SpringApplication.run(SampleRestApplication.class, args); } @Bean public Server rsServer() { // setup CXF-RS JAXRSServerFactoryBean endpoint = new JAXRSServerFactoryBean(); endpoint.setBus(bus); endpoint.setServiceBeans(Arrays.<Object>asList(new HelloServiceImpl())); endpoint.setAddress("/"); endpoint.setFeatures(Arrays.asList(new Swagger2Feature())); return endpoint.create(); } }
55.2 예제 Java 구현 파일
import io.swagger.annotations.Api; @Api("/sayHello") public class HelloServiceImpl implements HelloService { public String welcome() { return "Welcome to the CXF RS Spring Boot application, append /{name} to call the hello service"; } public String sayHello(String a) { return "Hello " + a + ", Welcome to CXF RS Spring Boot World!!!"; } }
55.3 예제 Java 파일 예
package io.fabric8.quickstarts.cxf.jaxrs; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import org.springframework.stereotype.Service; @Path("/sayHello") @Service public interface HelloService { @GET @Path("") @Produces(MediaType.TEXT_PLAIN) String welcome(); @GET @Path("/{a}") @Produces(MediaType.TEXT_PLAIN) String sayHello(@PathParam("a") String a); }