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

}

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.