2017-12-30 14 views
7

Swaggerのドキュメントに関する情報を追加しようとしましたが、具体的には@ApiPropertyModelアノテーションの問題があります。Kongchen Swaggerが@ApiModelPropertyアノテーションを無視しています

私がやろうとしていることは問題ではありません。ただ機能しません。プラグインがSwagger.jsonを正しく生成していて、すべての@ApiOperationアノテーションがRESTリソース用に機能していますが、モデル部分ではモデルクラスのプロパティのみをイントロスペクションし、それらのアノテーションは表示しません。ここで

は、プラグインが設定されている方法です。

<plugin> 
    <groupId>com.github.kongchen</groupId> 
    <artifactId>swagger-maven-plugin</artifactId> 
    <version>3.1.5</version> 

    <configuration> 
     <apiSources> 
      <apiSource> 
       <locations> 
        <location>com.example.rest.resources</location> 
        <location>com.example.rest.model</location> 
       </locations> 
       <swaggerDirectory>${project.build.directory}/generated-sources</swaggerDirectory> 
       <basePath>/path/to/the/api</basePath> 
       <info> 
        <title>My RESTful API Documentation</title> 
        <version>${project.version}</version> 
       </info> 
      </apiSource> 
     </apiSources> 
    </configuration> 

    <executions> 
     <execution> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>generate</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

私は例えばお持ちの場合:

@ApiModelProperty(example = "test example") 
public String test; 

それはtestプロパティを生成しますが、それは任意の例や他のプロパティを作成しませんその注釈で設定したゲッターで使用しているときも同じことが起こっているので、それは問題ではないと思います。

何か間違っていますか? また、私はKongchenのサンプルプロジェクトを見て、それを動作させるために特別なものを見ることができませんでした。

+0

POMで設定されたパッケージとパスがすべて正しいかどうかを知るのに役立ちます。モデルのcalssのパッケージ文を貼り付けると、それが役に立ちます。また、クラス・レベルで使用されているすべてのアノテーションをJavaモデル・クラス全体に貼り付けることができますか? – tkruse

+0

関連:https://stackoverflow.com/questions/32900551/swagger-apimodelproperty-not-working – tkruse

+0

関連性を追加していただきありがとうございます。でも、それには答えがないことは悲しいことです。 :/ –

答えて

0

モデルクラスに@ApiModelアノテーションを忘れていた可能性がありますか?

同様:

@ApiModel 
public class PostRequest { 

    @ApiModelProperty(example = "test example") 
    public String test; 

} 

したり、モデルのパッケージはのpom.xmlに与えられているものと一致しません。

+0

を参照してください。いいえ、私が言ったように、モデルクラスもイントロスペクトされていても、フィールドはswagger.jsonファイルに期待通りに表示されますその特定のアノテーションは機能しません。 :/ –

+0

フィールドは@ApiModelアノテーションがなくても表示されるので、それは証明ではありません。 – tkruse

1

私はコードをもう一度使いこなそうとしていましたが、問題はプロジェクトの構造にあることがわかりました。これは異なるモジュールを持ち、一般的な開発のためのプロファイルと、RESTfulなAPIドキュメントのためのプロファイルだけを持っています。

私はしばらく気を散らかし、mvn clean packageを使ってプロジェクトを構築し始めました。プロジェクトのバージョンがインストールされているので、それを使ってドキュメントを作成していました。メインソースコード内のmvn clean installは、注釈が何らかの効果を発揮するのを見ることができました。

私が使用している構造全体について何かを書いていたので、ドキュメンテーションプロジェクトについて私が与えることができる情報を超えていました。しかし、少なくとも私は次の人がこれについて知っているかもしれないようにこの答えを保持します。

ありがとうございました!

関連する問題