2016-03-25 24 views
0

我寫了一個架構來驗證響應正文。並將所有項目設置爲「必需」。但是當主體返回空數組時,它直到PASS,這應該是FAIL。模式是這樣的:json架構不適用於空響應主體

var schema = { 
 
    "$schema": "http://json-schema.org/draft-04/schema#", 
 
    "type": "array", 
 
    "items": { 
 
    "$ref": "#/definitions/MyObject" 
 
    }, 
 
    "definitions": { 
 
    "MyObject": { 
 
     "type": ["object"], 
 
     "properties": { 
 
     "transactionId": "integer", 
 
     "transactionType": "string", 
 
     "bpCode": "string", 
 
     "bpId": "string", 
 
     "postingDate ": "string", 
 
     "dueDate": "string", 
 
     "totalAmount": "number", 
 
     "balanceDue": "number", 
 
     "reconcileAmount": "number", 
 
     "debitCredit": "string", 
 
     "remarks": "string", 
 
     }, 
 
     "required": ["transactionId", "transactionType", "bpCode", "bpId", "postingDate", "dueDate", "totalAmount", "balanceDue", "reconcileAmount", "debitCredit", "remarks"], 
 
     "additionalProperties": false 
 
    } 
 
    } 
 
}; 
 

 
tests["Valid respong body schema"] = tv4.validate(data.body, schema);

這樣的迴應:

{ 
 
    "errorCode": null, 
 
    "errorMessage": null, 
 
    "body": [] 
 
}

回答

0

您應該排除與空數組:

"type": "array", 
"minItems": 1 
"items": { 
    "$ref": "#/definitions/MyObject" 
}