2
現在、oneOfと2つのスキーマを含むスキーマファイルを使用しています.1つはPATCH要求用、もう1つはPOST要求用です。 Javaコードでは、リクエストでidが使用可能かどうかをチェックし、oneOfセクションの最初のスキーマにエラーメッセージがあるかどうかを確認します。JSONスキーマでoneOfを使用してPOSTリクエストとPATCHリクエストの両方を検証する方法は?
このような何か:
processingReport.iterator().forEachRemaining(processingMessage -> {
JsonNode json = processingMessage.asJson();
JSONObject reports = new JSONObject(json.get("reports").toString());
logger.debug("Schema validation: {}", reports.toString());
//Seems always has 2 reports.
String reportIdentifier = isCreate ? "/properties/data/oneOf/0" : "/properties/data/oneOf/1";
JSONArray errorsArray = new JSONArray(reports.get(reportIdentifier).toString());
//Do something with the error here
});
しかし、これは私には適切ではないようです。スキーマ自体でこれを管理する方法はありますか?そうすれば、idが利用可能なときにoneOfから正しいスキーマを選ぶか、それとももっと良い方法がありますか?
私は1つのオプションが別のjsonファイルを持っていることを知っていますが、私たちのテクニカルマネージャーはむしろ1つの場所に保管しています。
を使用すると、プロパティに含まれる値に基づいてスキーマを選択することを意味しますか?それから、これを見てください:http://stackoverflow.com/questions/18375506/how-to-use-dependencies-in-json-schema-draft-04/18384131#18384131 – jruizaranguren
@jruizarangurenそのタイプからスキーマを選択しますが、私はシナリオが異なります。私の場合、タイプは同じです。 (それはいつもCompanyだとしましょう)、どのスキーマを選択するかは、プロパティ 'id'を使用できるかどうかによって異なります。私は '依存関係'について考えましたが、yが提示されたときにのみチェックプロパティxと言うことができます。 idが与えられたときに、このスキーマを選択するために、どのように '依存関係'を使うことができますか?それが可能かどうかの例を教えてもらえますか? JSONスキーマはわかりにくいです – xbmono