mike-oakley / openapi-pydantic

Pydantic OpenAPI schema implementation
Other
48 stars 7 forks source link

Support boolean schemas #35

Open jcklie opened 1 month ago

jcklie commented 1 month ago

JSON schema has a niche case where are allowed to just consist of a boolean 1. Therefore, this is a valid schema:

{
    "type": "object",
    "properties": {
        "foo": {
          "type": "array",
          "items": true  
        },
        "bar": false
    }
}

I encountered some schemas using this in real life that used this feature and fail parsing with this package. I see two solutions to this problem: extending the union wherever there is a schema used, e.g. turn all Union[Ref, Schema] into Union[Ref, Schema, bool] or make schema itself a union of Schema and Bool and rename the existing schema to something like JsonSchema. I hacked it for myself to use the former solution.

mike-oakley commented 3 weeks ago

Hi @jcklie - thanks for reaching out! Happy to accept a contribution for this, probably the latter solution (make schema itself a union of Schema and Bool and rename the existing schema to something like JsonSchema) would be preferable in my mind to reduce the number of places that need updating?