Swagger

WildFlyにはRestEasyが組み込まれているのでそれを前提に。

Swagger セットアップ

pom.xml

`swagger-jaxrs`を依存関係に追加する。

<dependency>
    <groupId>io.swagger</groupId>
    <artifactId>swagger-jaxrs</artifactId>
    <version>1.5.13</version>
</dependency>

参考: Adding the dependencies to your application Jersyの場合は専用の別ライブラリがある。

web.xml

自動でJAX-RSのリソースプロバイダをスキャンするために、`web.xml`に次を追記する。

  <context-param>
    <param-name>resteasy.scan</param-name>
    <param-value>true</param-value>
  </context-param>

参考: Hooking up Swagger-Core in your Application - Automatic scanning and registration 上記のほか、手動追加など他の選択肢も有る。

コード

`Application`継承クラスのコンストラクタに次を記載する。

        BeanConfig beanConfig = new BeanConfig();
        beanConfig.setVersion("0.1.0");
        beanConfig.setSchemes(new String[] { "http" });
        beanConfig.setHost("localhost:8080");
        beanConfig.setBasePath("/hello-wildfly-rest/rest");
        beanConfig.setResourcePackage("jp.himeji_cs.hello_wildfly_rest.rest");
        beanConfig.setScan(true);
        beanConfig.setPrettyPrint(true);

Swagger-UI セットアップ

  1. WildFlyのホームディレクトリ(以下、$JBOSS_HOME)直下に`swagger`というディレクトリを作成し、https://github.com/swagger-api/swagger-ui[swagger-ui]の`dist`以下をコピーする。

# `$JBOSS_HOME/standalone/configuration/standalone.xml`を開き、undertow設定箇所で上記のディレクトリを公開する設定を行う。

        <subsystem xmlns="urn:jboss:domain:undertow:3.1">
            <server name="default-server">
                <host name="default-host" alias="localhost">
                    <location name="/" handler="welcome-content"/>
                    <location name="/swagger" handler="swagger"/>
                </host>
            </server>
            <handlers>
                <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
                <file name="swagger" path="${jboss.home.dir}/swagger"/>
            </handlers>

(上記の、 swagger という文字列が現れている行(2行)を追加。)

これで、 http://localhost:8080/swagger/ へアクセスするとSwagger-UIが利用できる。