While these tools are able to work with *simple* and *standalone* json schema files, I have not been able to parse Redfish schema.
The following are some of the issues which I encountered while using those tools on Redfish schema: 1) Versioning of json schema (separate files for each version). 2) Naming syntax with special characters such as '#' and white spaces. 3) Linked / references to other schema via $ref. 4) Odata elements in schema.
Given the requirement for python based Redfish *server*, what is the recommendation for validating the content body against the schema ?
I personally don't use this set of tools and since nobody else has responded, I can tell you that there are engineers here at HPE that are validating payload. And I know that when we were developing the standard, we had an engineer validate payload against the JSON Schema. In fact, the GitHub repo we use for developing the spec validates our mockups against schema or else it won't let us do the Merge.
That being said, I remember issues with the generic python libraries especially around $ref. The Odata elements should validate because the schema reference copies of them in JSON Schema, so if you have $ref fixed, that shouldn't be an issue. If there are white spaces, those sound like bugs to me and we would like to know about them.
So what is the recommendation for validating the content? That it should be Schema conformant and any errors should be noted and returned in the error response to the request.
We do some python validation but not as much as we probably should. We're really validating the CSDL more than anything. Which engineering team in #2? The HPE one? If so, I'll ask them to comment directly.