9

私は Jersey 1.2 (まだ JDK 1.5 を使用しています) を使用しており、REST Booking Web リソースと関連する Booking POJO を開発しました。

フィールドのサイズ/タイプを制限するために Bean Validation を使用しました。

@NotNull
@Size(message="invalid size",min=3,max=20)
@Pattern(message="invalid pattern",regexp = "^[A-Za-z]*")
@JsonProperty(value = "forename")
private String forename;

Jackson ObjectMapper.generateJsonSchema クラスを使用して JSON スキーマを生成しましたが、これはすべての検証注釈を無視するため、次のようになります。

"forename" : {
  "type" : "string"
}

生成されたスキーマの一部として制限情報を含める方法はありますか?

どうもありがとう

4

3 に答える 3

7

jackson-module-jsonSchema 2.5.0+ は現在、いくつかの注釈をサポートしているようです:

ValidationSchemaFactoryWrapper personVisitor = new    
ValidationSchemaFactoryWrapper();
ObjectMapper mapper = new ObjectMapper();
mapper.acceptJsonFormatVisitor(Person.class, personVisitor);
JsonSchema personSchema = personVisitor.finalSchema();
于 2015-05-16T21:26:46.317 に答える
6

すぐに使用できる方法はありませんが、次の拡張モジュールを使用します。

https://github.com/FasterXML/jackson-module-jsonSchema

スキーマ ジェネレーターを変更して、必要な追加情報を追加できるようにする必要があります。警告: これは新しいプロジェクトであり、おそらくジャクソンのコア コンポーネントの 2.2.0-SNAPSHOT バージョンを使用する必要があります。

于 2013-01-03T18:47:13.257 に答える