BlackSheep icon indicating copy to clipboard operation
BlackSheep copied to clipboard

Add support for Union types in OpenAPI Doc generation

Open RobertoPrevato opened this issue 1 year ago • 1 comments

🚀 Feature Request

Add support for the following scenarios:

@dataclass
class A:
    a_prop: int


@dataclass
class B:
    b_prop: str


@dataclass
class C:
    c_prop: str


@dataclass
class AnyOfTestClass:
    sub_prop: Union[A, B, C]


@pytest.mark.asyncio
async def test_any_of_dataclasses(docs: OpenAPIHandler, serializer: Serializer):
    app = get_app()
    docs.bind_app(app)

    @app.route("/one")
    def one(data: AnyOfTestClass):
        ...

    await app.start()

    yaml = serializer.to_yaml(docs.generate_documentation(app))

RobertoPrevato avatar Jul 02 '23 06:07 RobertoPrevato