2
目前我們使用的模式文件包含oneOf和2個模式:一個用於PATCH請求,一個用於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中選擇正確的模式,或者有更好的方法來實現它?
我知道一個選項會有不同的json文件,但我們的技術經理寧願將它們放在一個地方。
您是不是要根據屬性中包含的值選擇模式?然後看看這個:http://stackoverflow.com/questions/18375506/how-to-use-dependencies-in-json-schema-draft-04/18384131#18384131 – jruizaranguren
@jruizaranguren從類型中選擇模式,但我的情況是不同的。在我的情況下,類型是相同的。 (假設它總是公司),但是選擇哪個模式取決於屬性'id'是否可用。我想過'依賴關係',但是隻有在y出現時才能說檢查屬性x。我們如何使用'依賴關係'來表示在id出現時選擇這個模式?你能給我舉個例子嗎? JSON模式對我來說有點難理解 – xbmono