2017-08-24 22 views
0

私はjsonビューに制約を追加することを検討しています。同じオブジェクトに@NotNullと@JsonProperty(必須)を使用する必要があります

私は私が@JsonProperty(required = true)@NotNullの両方をこの1

public class Person { 
    @JsonProperty(required = true) 
    @NotNull 
    @Size(max = 50) 
    private String name; 
} 

に類似するクラスを維持する必要がありますしているか、私は1つを削除し、なぜでしょうか?


ジャクソン2.6 @JsonProperty(required = true)exceptionをスローしないためだけ明確にします。

私はspringfox-swaggerを使用しています。削除するとそのように見えます。@JsonProperty(required = true)スワッガーのフィールドはオプションではないとマークされています。

私は、この状況でのベストプラクティスについて疑問に思います。

+0

私はspringfox-swaggerを使用していますが、 '@JsonProperty(required = true) 'を削除したように見えます。スワッガーのフィールドはオプションとしてマークされています。 – shammancer

+0

私の[answer](https://stackoverflow.com/a/45877203/1426227)があなたに役立つかどうか教えてください –

+0

この時点で、私は両方とも '@JsonProperty(required = true)'を使うことに決めました。と '@NoNull'。私は、@ JsonProperty'が必要なもののために動作するため、ApiModelPropertyを密接に見ていませんでした... – shammancer

答えて

2

フィールドやメソッドのtruerequiredセットで@JsonPropertyを使用して、ジャクソンは、検証を実行することはありません。詳細はdocumentationを参照してください。検証目的のため


、ビーン検証(例えばHibernate Validatorとして検証プロバイダが検証を実行するために必要とされる)から@NotNullを考えます。

Swaggerでは、@ApiModelPropertyを使用し、requiredtrueを設定して、フィールドが必須であることを示すこともできます。

関連する問題