By default, objects are unmarshalled to dictionaries. You can use dynamically created dataclasses by providing x-model-path property inside schema definition with name of the model.
# ...
components:
schemas:
Coordinates:
x-model: Coordinates
type: object
required:
- lat
- lon
properties:
lat:
type: number
lon:
type: numberAs a result of unmarshalling process, you will get Coordinates class instance with lat and lon attributes.
You can use your own dataclasses, pydantic models or models generated by third party generators (i.e. datamodel-code-generator) by providing x-model-path property inside schema definition with location of your class.
...
components:
schemas:
Coordinates:
x-model-path: foo.bar.Coordinates
type: object
required:
- lat
- lon
properties:
lat:
type: number
lon:
type: number# foo/bar.py
from dataclasses import dataclass
@dataclass
class Coordinates:
lat: float
lon: floatAs a result of unmarshalling process, you will get instance of your own dataclasses or model.