1

Swagger 2.x と SpringFox 2.0 を使用して、Spring MVC で作成された REST サービスを文書化しています。

プロパティ List<LocalDate> 日付を持つ REST 応答があります。

応答のモデル スキーマでは、日付のラベルは「LocalDate」と表示されます。これは意図したものではありません。代わりに「date」または「yyyy-MM-dd」が必要です。

このクラスがあります:

public class SayHelloResponse {

    private List<LocalDate> dates;

    private String message;

    public SayHelloResponse(String message, LocalDate... dates) {
        this.message = message;
        this.dates = ImmutableList.copyOf(dates);
    }

    public List<LocalDate> getDates() {
        return dates;
    }

    public String getMessage() {
        return message;
    }
}

その結果、次のモデル スキーマが生成されます。

{
  "dates": [
     "LocalDate"
  ],
  "message": "string"
}

モデル スキーマでは、LocalDate を「date」または「yyyy-MM-dd」にしたいと考えています。これを行う方法は com.wordnik.swagger.annotations.ApiModelProperty を使用しているようですが、これには何の効果もありません ( @ApiModelProperty(hidden=true) を追加すると非表示になるため、ピックアップされています)。

問題を示すサンプル休憩プロジェクトを作成しました。

Swagger のモデル スキーマで LocalDate を 'date' または 'yyyy-MM-dd' に変更する方法はありますか?

4

2 に答える 2

0

Docket オブジェクトには、directModelSubstitute() というモデルを置き換えるメソッドがあります。次のように使用して、LocalDate を Date オブジェクトに置き換えることができます。

Docket#directModelSubstitute(LocalDate.class, Date.class)

私が見つけた唯一の問題は、日付形式を変更できないことです。

Springfoxの公式ドキュメントの A/Q セクションを参照してください

于 2015-09-21T16:04:55.050 に答える