openapi-core icon indicating copy to clipboard operation
openapi-core copied to clipboard

"Any Type" not supported

Open diogobaeder opened this issue 6 years ago • 3 comments

"Any Type" is part of the specification ( https://swagger.io/docs/specification/data-models/data-types/#any ), however this library does not support it.

The problem seems that, when creating the Schema for a schema spec that has {} as its value (meaning "anything can be used as input here"), it is created with an object type - see here: https://github.com/p1c2u/openapi-core/blob/master/openapi_core/schemas.py#L179 - it tries to infer "object" by default.

After checking the schema types ( https://github.com/p1c2u/openapi-core/blob/master/openapi_core/enums.py#L27 ) I can see that "any" is not there.

Please let me know if you need help with implementing that.

Thanks, Diogo

diogobaeder avatar May 17 '18 01:05 diogobaeder

@diogobaeder this is tricky one. I need to have #34 AnyOf supprt done first.

p1c2u avatar May 30 '18 09:05 p1c2u

No problem. I was actually trying to use "Any Type" as a hack in place of oneOf, but now that you implemented oneOf I won't need this so soon. Thanks!

diogobaeder avatar May 30 '18 18:05 diogobaeder

I'm also trying to use the any type. It's sort of working but I receive an unmarshaller warning that seems like it should just be removed? I'm using the following schema and data.

TemplateField:
  type: object
  properties:
    name:
      type: string
    default:
      nullable: true
{
  "name": "foo",
  "default": None
}

https://github.com/p1c2u/openapi-core/blob/97ec8c796746f72ef3298fe92078b5f80e1f66f7/openapi_core/unmarshalling/schemas/unmarshallers.py#L266

mmerickel avatar Apr 22 '20 23:04 mmerickel