54.3. Spring Boot 実装


本セクションでは、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 JAX-RS エンドポイントが含まれるアプリケーションを設定します。

54.3.2. Swagger の有効化

Swagger を有効にするには、以下の操作が必要です。

  • REST アプリケーションで以下を行います。

    • Swagger2Feature をインポートする。

      import org.apache.cxf.jaxrs.swagger.Swagger2Feature;
    • Swagger2Feature を CXF エンドポイントに追加する。

      endpoint.setFeatures(Arrays.asList(new Swagger2Feature()));

      例は、例 55.1: REST アプリケーションの例 を参照してください。

  • Java 実装ファイルで、サービスが必要とする各アノテーションの Swagger API アノテーションをインポートします。

    import io.swagger.annotations.*

    ここで、* は ApiApiOperationApiParamApiResponseApiResponses などです。

    詳細は、https://github.com/swagger-api/swagger-core/wiki/Annotations を参照してください。

    例は、例 55.2: Java 実装ファイル を参照してください。

  • Java ファイルで、Swagger アノテーションを JAX-RS でアノテーションが付けられたエンドポイント (@PATH@PUT@POST@GET@Produces@Consumes@DELETE@PathParam など) に追加します。

    例は、例 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 では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.