From 9ceb1b541dbe5b8088bdada3dadf58598e53ea10 Mon Sep 17 00:00:00 2001 From: alexturcea Date: Wed, 10 May 2023 07:27:50 +0000 Subject: [PATCH] Fix: int values being serialized as floats in the OpenAPI schema --- fastapi/openapi/models.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/fastapi/openapi/models.py b/fastapi/openapi/models.py index 35aa1672b..49ec74c36 100644 --- a/fastapi/openapi/models.py +++ b/fastapi/openapi/models.py @@ -103,11 +103,11 @@ class ExternalDocumentation(BaseModel): class Schema(BaseModel): ref: Optional[str] = Field(default=None, alias="$ref") title: Optional[str] = None - multipleOf: Optional[float] = None - maximum: Optional[float] = None - exclusiveMaximum: Optional[float] = None - minimum: Optional[float] = None - exclusiveMinimum: Optional[float] = None + multipleOf: Optional[Union[float, int]] = None + maximum: Optional[Union[float, int]] = None + exclusiveMaximum: Optional[Union[float, int]] = None + minimum: Optional[Union[float, int]] = None + exclusiveMinimum: Optional[Union[float, int]] = None maxLength: Optional[int] = Field(default=None, gte=0) minLength: Optional[int] = Field(default=None, gte=0) pattern: Optional[str] = None @@ -140,6 +140,7 @@ class Schema(BaseModel): class Config: extra: str = "allow" + smart_union = True class Example(BaseModel):