現在、2 つのスキーマを持つoneOfを含むスキーマ ファイルを使用しています。1つは PATCH 要求用、もう 1 つは POST 要求用です。Java コードでは、リクエストで id が使用可能かどうかを確認し、次に oneOf セクションの最初のスキーマにエラー メッセージがあるかどうかを確認します。
このようなもの:
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 か所にまとめたいと考えています。