2015-11-24 32 views
1

我們使用JsonSchema來記錄我們的REST API,我需要確保每一個字符串,數字陣列具有適用於他們自己的最大尺寸的限制,即如何強制實施限制的JSON模式

  • 所有字符串有一個最大長度&模式設置
  • 所有整數/數字有一個最大的集
  • 所有陣列具有maxItems設置

這就將使我們與r對JsonSchema生成的POJO進行非javax驗證(我們使用帶有JSR303註釋的jsonschema2pojo)。

我寧願不手動地眼球每一個模式通過我的方式,所以想知道是否有任何自動化工具檢查這些項目的每個元素?如果不是我可能會寫一個:-)

非常感謝

回答

1

你可以建立自己的元模式相同的方式任何有效的JSON-模式可以對draft-04 meta-schema進行驗證。

以你的樣品,可以添加以下限制一般有效的JSON-模式:

{ 
    "oneOf" : [{ 
      "type" : "string", 
      "required" : ["pattern", "maxLength"] 
     }, { 
      "type" : "array", 
      "required" : ["maxItems"] 
     }, { 
      "type" : { 
       "enum" : ["number", "integer"] 
      }, 
      "required" : ["maximum"] 
     }, { 
      "type" : { 
       "enum" : ["object", "boolean", "null"] 
      } 
     } 

    ] 
} 

自己的中繼驗證後,可以安全地生成Java類。

+0

非常感謝,真的很有用,對於延遲迴復感到抱歉。 – MandyW