mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-06-30 12:40:52 +00:00
Fix issue with fastapi generator converting all fields to snake_case (#12261)
* Fix issue with python-fastapi generator converting all fields to snake_case * Update Python-FastAPI sample Co-authored-by: Rory Dungan <contact@rorydungan.com>
This commit is contained in:
parent
d242a98343
commit
fd5ad7f895
@ -41,6 +41,7 @@ router = APIRouter()
|
|||||||
{{#description}}
|
{{#description}}
|
||||||
description = "{{.}}",
|
description = "{{.}}",
|
||||||
{{/description}}
|
{{/description}}
|
||||||
|
response_model_by_alias=True,
|
||||||
)
|
)
|
||||||
async def {{operationId}}(
|
async def {{operationId}}(
|
||||||
{{#allParams}}
|
{{#allParams}}
|
||||||
|
@ -6,7 +6,7 @@ from datetime import date, datetime # noqa: F401
|
|||||||
import re # noqa: F401
|
import re # noqa: F401
|
||||||
from typing import Any, Dict, List, Optional # noqa: F401
|
from typing import Any, Dict, List, Optional # noqa: F401
|
||||||
|
|
||||||
from pydantic import AnyUrl, BaseModel, EmailStr, validator # noqa: F401
|
from pydantic import AnyUrl, BaseModel, EmailStr, Field, validator # noqa: F401
|
||||||
{{#models}}
|
{{#models}}
|
||||||
{{#model}}
|
{{#model}}
|
||||||
{{#pyImports}}
|
{{#pyImports}}
|
||||||
@ -31,7 +31,7 @@ class {{classname}}(BaseModel):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
{{#vars}}
|
{{#vars}}
|
||||||
{{name}}: {{#required}}{{>model_field_type}}{{/required}}{{^required}}Optional[{{>model_field_type}}] = None{{/required}}
|
{{name}}: {{#required}}{{>model_field_type}}{{/required}}{{^required}}Optional[{{>model_field_type}}]{{/required}} = Field(alias="{{baseName}}"{{^required}}, default=None{{/required}})
|
||||||
{{/vars}}
|
{{/vars}}
|
||||||
{{#vars}}
|
{{#vars}}
|
||||||
{{#maximum}}
|
{{#maximum}}
|
||||||
|
@ -32,6 +32,7 @@ router = APIRouter()
|
|||||||
},
|
},
|
||||||
tags=["pet"],
|
tags=["pet"],
|
||||||
summary="Add a new pet to the store",
|
summary="Add a new pet to the store",
|
||||||
|
response_model_by_alias=True,
|
||||||
)
|
)
|
||||||
async def add_pet(
|
async def add_pet(
|
||||||
pet: Pet = Body(None, description="Pet object that needs to be added to the store"),
|
pet: Pet = Body(None, description="Pet object that needs to be added to the store"),
|
||||||
@ -50,6 +51,7 @@ async def add_pet(
|
|||||||
},
|
},
|
||||||
tags=["pet"],
|
tags=["pet"],
|
||||||
summary="Deletes a pet",
|
summary="Deletes a pet",
|
||||||
|
response_model_by_alias=True,
|
||||||
)
|
)
|
||||||
async def delete_pet(
|
async def delete_pet(
|
||||||
petId: int = Path(None, description="Pet id to delete"),
|
petId: int = Path(None, description="Pet id to delete"),
|
||||||
@ -70,6 +72,7 @@ async def delete_pet(
|
|||||||
},
|
},
|
||||||
tags=["pet"],
|
tags=["pet"],
|
||||||
summary="Finds Pets by status",
|
summary="Finds Pets by status",
|
||||||
|
response_model_by_alias=True,
|
||||||
)
|
)
|
||||||
async def find_pets_by_status(
|
async def find_pets_by_status(
|
||||||
status: List[str] = Query(None, description="Status values that need to be considered for filter"),
|
status: List[str] = Query(None, description="Status values that need to be considered for filter"),
|
||||||
@ -89,6 +92,7 @@ async def find_pets_by_status(
|
|||||||
},
|
},
|
||||||
tags=["pet"],
|
tags=["pet"],
|
||||||
summary="Finds Pets by tags",
|
summary="Finds Pets by tags",
|
||||||
|
response_model_by_alias=True,
|
||||||
)
|
)
|
||||||
async def find_pets_by_tags(
|
async def find_pets_by_tags(
|
||||||
tags: List[str] = Query(None, description="Tags to filter by"),
|
tags: List[str] = Query(None, description="Tags to filter by"),
|
||||||
@ -109,6 +113,7 @@ async def find_pets_by_tags(
|
|||||||
},
|
},
|
||||||
tags=["pet"],
|
tags=["pet"],
|
||||||
summary="Find pet by ID",
|
summary="Find pet by ID",
|
||||||
|
response_model_by_alias=True,
|
||||||
)
|
)
|
||||||
async def get_pet_by_id(
|
async def get_pet_by_id(
|
||||||
petId: int = Path(None, description="ID of pet to return"),
|
petId: int = Path(None, description="ID of pet to return"),
|
||||||
@ -130,6 +135,7 @@ async def get_pet_by_id(
|
|||||||
},
|
},
|
||||||
tags=["pet"],
|
tags=["pet"],
|
||||||
summary="Update an existing pet",
|
summary="Update an existing pet",
|
||||||
|
response_model_by_alias=True,
|
||||||
)
|
)
|
||||||
async def update_pet(
|
async def update_pet(
|
||||||
pet: Pet = Body(None, description="Pet object that needs to be added to the store"),
|
pet: Pet = Body(None, description="Pet object that needs to be added to the store"),
|
||||||
@ -148,6 +154,7 @@ async def update_pet(
|
|||||||
},
|
},
|
||||||
tags=["pet"],
|
tags=["pet"],
|
||||||
summary="Updates a pet in the store with form data",
|
summary="Updates a pet in the store with form data",
|
||||||
|
response_model_by_alias=True,
|
||||||
)
|
)
|
||||||
async def update_pet_with_form(
|
async def update_pet_with_form(
|
||||||
petId: int = Path(None, description="ID of pet that needs to be updated"),
|
petId: int = Path(None, description="ID of pet that needs to be updated"),
|
||||||
@ -168,6 +175,7 @@ async def update_pet_with_form(
|
|||||||
},
|
},
|
||||||
tags=["pet"],
|
tags=["pet"],
|
||||||
summary="uploads an image",
|
summary="uploads an image",
|
||||||
|
response_model_by_alias=True,
|
||||||
)
|
)
|
||||||
async def upload_file(
|
async def upload_file(
|
||||||
petId: int = Path(None, description="ID of pet to update"),
|
petId: int = Path(None, description="ID of pet to update"),
|
||||||
|
@ -31,6 +31,7 @@ router = APIRouter()
|
|||||||
},
|
},
|
||||||
tags=["store"],
|
tags=["store"],
|
||||||
summary="Delete purchase order by ID",
|
summary="Delete purchase order by ID",
|
||||||
|
response_model_by_alias=True,
|
||||||
)
|
)
|
||||||
async def delete_order(
|
async def delete_order(
|
||||||
orderId: str = Path(None, description="ID of the order that needs to be deleted"),
|
orderId: str = Path(None, description="ID of the order that needs to be deleted"),
|
||||||
@ -46,6 +47,7 @@ async def delete_order(
|
|||||||
},
|
},
|
||||||
tags=["store"],
|
tags=["store"],
|
||||||
summary="Returns pet inventories by status",
|
summary="Returns pet inventories by status",
|
||||||
|
response_model_by_alias=True,
|
||||||
)
|
)
|
||||||
async def get_inventory(
|
async def get_inventory(
|
||||||
token_api_key: TokenModel = Security(
|
token_api_key: TokenModel = Security(
|
||||||
@ -65,6 +67,7 @@ async def get_inventory(
|
|||||||
},
|
},
|
||||||
tags=["store"],
|
tags=["store"],
|
||||||
summary="Find purchase order by ID",
|
summary="Find purchase order by ID",
|
||||||
|
response_model_by_alias=True,
|
||||||
)
|
)
|
||||||
async def get_order_by_id(
|
async def get_order_by_id(
|
||||||
orderId: int = Path(None, description="ID of pet that needs to be fetched", ge=1, le=5),
|
orderId: int = Path(None, description="ID of pet that needs to be fetched", ge=1, le=5),
|
||||||
@ -81,6 +84,7 @@ async def get_order_by_id(
|
|||||||
},
|
},
|
||||||
tags=["store"],
|
tags=["store"],
|
||||||
summary="Place an order for a pet",
|
summary="Place an order for a pet",
|
||||||
|
response_model_by_alias=True,
|
||||||
)
|
)
|
||||||
async def place_order(
|
async def place_order(
|
||||||
order: Order = Body(None, description="order placed for purchasing the pet"),
|
order: Order = Body(None, description="order placed for purchasing the pet"),
|
||||||
|
@ -30,6 +30,7 @@ router = APIRouter()
|
|||||||
},
|
},
|
||||||
tags=["user"],
|
tags=["user"],
|
||||||
summary="Create user",
|
summary="Create user",
|
||||||
|
response_model_by_alias=True,
|
||||||
)
|
)
|
||||||
async def create_user(
|
async def create_user(
|
||||||
user: User = Body(None, description="Created user object"),
|
user: User = Body(None, description="Created user object"),
|
||||||
@ -48,6 +49,7 @@ async def create_user(
|
|||||||
},
|
},
|
||||||
tags=["user"],
|
tags=["user"],
|
||||||
summary="Creates list of users with given input array",
|
summary="Creates list of users with given input array",
|
||||||
|
response_model_by_alias=True,
|
||||||
)
|
)
|
||||||
async def create_users_with_array_input(
|
async def create_users_with_array_input(
|
||||||
user: List[User] = Body(None, description="List of user object"),
|
user: List[User] = Body(None, description="List of user object"),
|
||||||
@ -66,6 +68,7 @@ async def create_users_with_array_input(
|
|||||||
},
|
},
|
||||||
tags=["user"],
|
tags=["user"],
|
||||||
summary="Creates list of users with given input array",
|
summary="Creates list of users with given input array",
|
||||||
|
response_model_by_alias=True,
|
||||||
)
|
)
|
||||||
async def create_users_with_list_input(
|
async def create_users_with_list_input(
|
||||||
user: List[User] = Body(None, description="List of user object"),
|
user: List[User] = Body(None, description="List of user object"),
|
||||||
@ -85,6 +88,7 @@ async def create_users_with_list_input(
|
|||||||
},
|
},
|
||||||
tags=["user"],
|
tags=["user"],
|
||||||
summary="Delete user",
|
summary="Delete user",
|
||||||
|
response_model_by_alias=True,
|
||||||
)
|
)
|
||||||
async def delete_user(
|
async def delete_user(
|
||||||
username: str = Path(None, description="The name that needs to be deleted"),
|
username: str = Path(None, description="The name that needs to be deleted"),
|
||||||
@ -105,6 +109,7 @@ async def delete_user(
|
|||||||
},
|
},
|
||||||
tags=["user"],
|
tags=["user"],
|
||||||
summary="Get user by user name",
|
summary="Get user by user name",
|
||||||
|
response_model_by_alias=True,
|
||||||
)
|
)
|
||||||
async def get_user_by_name(
|
async def get_user_by_name(
|
||||||
username: str = Path(None, description="The name that needs to be fetched. Use user1 for testing."),
|
username: str = Path(None, description="The name that needs to be fetched. Use user1 for testing."),
|
||||||
@ -121,6 +126,7 @@ async def get_user_by_name(
|
|||||||
},
|
},
|
||||||
tags=["user"],
|
tags=["user"],
|
||||||
summary="Logs user into the system",
|
summary="Logs user into the system",
|
||||||
|
response_model_by_alias=True,
|
||||||
)
|
)
|
||||||
async def login_user(
|
async def login_user(
|
||||||
username: str = Query(None, description="The user name for login", regex=r"^[a-zA-Z0-9]+[a-zA-Z0-9\.\-_]*[a-zA-Z0-9]+$"),
|
username: str = Query(None, description="The user name for login", regex=r"^[a-zA-Z0-9]+[a-zA-Z0-9\.\-_]*[a-zA-Z0-9]+$"),
|
||||||
@ -137,6 +143,7 @@ async def login_user(
|
|||||||
},
|
},
|
||||||
tags=["user"],
|
tags=["user"],
|
||||||
summary="Logs out current logged in user session",
|
summary="Logs out current logged in user session",
|
||||||
|
response_model_by_alias=True,
|
||||||
)
|
)
|
||||||
async def logout_user(
|
async def logout_user(
|
||||||
token_api_key: TokenModel = Security(
|
token_api_key: TokenModel = Security(
|
||||||
@ -155,6 +162,7 @@ async def logout_user(
|
|||||||
},
|
},
|
||||||
tags=["user"],
|
tags=["user"],
|
||||||
summary="Updated user",
|
summary="Updated user",
|
||||||
|
response_model_by_alias=True,
|
||||||
)
|
)
|
||||||
async def update_user(
|
async def update_user(
|
||||||
username: str = Path(None, description="name that need to be deleted"),
|
username: str = Path(None, description="name that need to be deleted"),
|
||||||
|
@ -6,7 +6,7 @@ from datetime import date, datetime # noqa: F401
|
|||||||
import re # noqa: F401
|
import re # noqa: F401
|
||||||
from typing import Any, Dict, List, Optional # noqa: F401
|
from typing import Any, Dict, List, Optional # noqa: F401
|
||||||
|
|
||||||
from pydantic import AnyUrl, BaseModel, EmailStr, validator # noqa: F401
|
from pydantic import AnyUrl, BaseModel, EmailStr, Field, validator # noqa: F401
|
||||||
|
|
||||||
|
|
||||||
class ApiResponse(BaseModel):
|
class ApiResponse(BaseModel):
|
||||||
@ -21,8 +21,8 @@ class ApiResponse(BaseModel):
|
|||||||
message: The message of this ApiResponse [Optional].
|
message: The message of this ApiResponse [Optional].
|
||||||
"""
|
"""
|
||||||
|
|
||||||
code: Optional[int] = None
|
code: Optional[int] = Field(alias="code", default=None)
|
||||||
type: Optional[str] = None
|
type: Optional[str] = Field(alias="type", default=None)
|
||||||
message: Optional[str] = None
|
message: Optional[str] = Field(alias="message", default=None)
|
||||||
|
|
||||||
ApiResponse.update_forward_refs()
|
ApiResponse.update_forward_refs()
|
||||||
|
@ -6,7 +6,7 @@ from datetime import date, datetime # noqa: F401
|
|||||||
import re # noqa: F401
|
import re # noqa: F401
|
||||||
from typing import Any, Dict, List, Optional # noqa: F401
|
from typing import Any, Dict, List, Optional # noqa: F401
|
||||||
|
|
||||||
from pydantic import AnyUrl, BaseModel, EmailStr, validator # noqa: F401
|
from pydantic import AnyUrl, BaseModel, EmailStr, Field, validator # noqa: F401
|
||||||
|
|
||||||
|
|
||||||
class Category(BaseModel):
|
class Category(BaseModel):
|
||||||
@ -20,8 +20,8 @@ class Category(BaseModel):
|
|||||||
name: The name of this Category [Optional].
|
name: The name of this Category [Optional].
|
||||||
"""
|
"""
|
||||||
|
|
||||||
id: Optional[int] = None
|
id: Optional[int] = Field(alias="id", default=None)
|
||||||
name: Optional[str] = None
|
name: Optional[str] = Field(alias="name", default=None)
|
||||||
|
|
||||||
@validator("name")
|
@validator("name")
|
||||||
def name_pattern(cls, value):
|
def name_pattern(cls, value):
|
||||||
|
@ -6,7 +6,7 @@ from datetime import date, datetime # noqa: F401
|
|||||||
import re # noqa: F401
|
import re # noqa: F401
|
||||||
from typing import Any, Dict, List, Optional # noqa: F401
|
from typing import Any, Dict, List, Optional # noqa: F401
|
||||||
|
|
||||||
from pydantic import AnyUrl, BaseModel, EmailStr, validator # noqa: F401
|
from pydantic import AnyUrl, BaseModel, EmailStr, Field, validator # noqa: F401
|
||||||
|
|
||||||
|
|
||||||
class Order(BaseModel):
|
class Order(BaseModel):
|
||||||
@ -24,11 +24,11 @@ class Order(BaseModel):
|
|||||||
complete: The complete of this Order [Optional].
|
complete: The complete of this Order [Optional].
|
||||||
"""
|
"""
|
||||||
|
|
||||||
id: Optional[int] = None
|
id: Optional[int] = Field(alias="id", default=None)
|
||||||
pet_id: Optional[int] = None
|
pet_id: Optional[int] = Field(alias="petId", default=None)
|
||||||
quantity: Optional[int] = None
|
quantity: Optional[int] = Field(alias="quantity", default=None)
|
||||||
ship_date: Optional[datetime] = None
|
ship_date: Optional[datetime] = Field(alias="shipDate", default=None)
|
||||||
status: Optional[str] = None
|
status: Optional[str] = Field(alias="status", default=None)
|
||||||
complete: Optional[bool] = None
|
complete: Optional[bool] = Field(alias="complete", default=None)
|
||||||
|
|
||||||
Order.update_forward_refs()
|
Order.update_forward_refs()
|
||||||
|
@ -6,7 +6,7 @@ from datetime import date, datetime # noqa: F401
|
|||||||
import re # noqa: F401
|
import re # noqa: F401
|
||||||
from typing import Any, Dict, List, Optional # noqa: F401
|
from typing import Any, Dict, List, Optional # noqa: F401
|
||||||
|
|
||||||
from pydantic import AnyUrl, BaseModel, EmailStr, validator # noqa: F401
|
from pydantic import AnyUrl, BaseModel, EmailStr, Field, validator # noqa: F401
|
||||||
from openapi_server.models.category import Category
|
from openapi_server.models.category import Category
|
||||||
from openapi_server.models.tag import Tag
|
from openapi_server.models.tag import Tag
|
||||||
|
|
||||||
@ -26,11 +26,11 @@ class Pet(BaseModel):
|
|||||||
status: The status of this Pet [Optional].
|
status: The status of this Pet [Optional].
|
||||||
"""
|
"""
|
||||||
|
|
||||||
id: Optional[int] = None
|
id: Optional[int] = Field(alias="id", default=None)
|
||||||
category: Optional[Category] = None
|
category: Optional[Category] = Field(alias="category", default=None)
|
||||||
name: str
|
name: str = Field(alias="name")
|
||||||
photo_urls: List[str]
|
photo_urls: List[str] = Field(alias="photoUrls")
|
||||||
tags: Optional[List[Tag]] = None
|
tags: Optional[List[Tag]] = Field(alias="tags", default=None)
|
||||||
status: Optional[str] = None
|
status: Optional[str] = Field(alias="status", default=None)
|
||||||
|
|
||||||
Pet.update_forward_refs()
|
Pet.update_forward_refs()
|
||||||
|
@ -6,7 +6,7 @@ from datetime import date, datetime # noqa: F401
|
|||||||
import re # noqa: F401
|
import re # noqa: F401
|
||||||
from typing import Any, Dict, List, Optional # noqa: F401
|
from typing import Any, Dict, List, Optional # noqa: F401
|
||||||
|
|
||||||
from pydantic import AnyUrl, BaseModel, EmailStr, validator # noqa: F401
|
from pydantic import AnyUrl, BaseModel, EmailStr, Field, validator # noqa: F401
|
||||||
|
|
||||||
|
|
||||||
class Tag(BaseModel):
|
class Tag(BaseModel):
|
||||||
@ -20,7 +20,7 @@ class Tag(BaseModel):
|
|||||||
name: The name of this Tag [Optional].
|
name: The name of this Tag [Optional].
|
||||||
"""
|
"""
|
||||||
|
|
||||||
id: Optional[int] = None
|
id: Optional[int] = Field(alias="id", default=None)
|
||||||
name: Optional[str] = None
|
name: Optional[str] = Field(alias="name", default=None)
|
||||||
|
|
||||||
Tag.update_forward_refs()
|
Tag.update_forward_refs()
|
||||||
|
@ -6,7 +6,7 @@ from datetime import date, datetime # noqa: F401
|
|||||||
import re # noqa: F401
|
import re # noqa: F401
|
||||||
from typing import Any, Dict, List, Optional # noqa: F401
|
from typing import Any, Dict, List, Optional # noqa: F401
|
||||||
|
|
||||||
from pydantic import AnyUrl, BaseModel, EmailStr, validator # noqa: F401
|
from pydantic import AnyUrl, BaseModel, EmailStr, Field, validator # noqa: F401
|
||||||
|
|
||||||
|
|
||||||
class User(BaseModel):
|
class User(BaseModel):
|
||||||
@ -26,13 +26,13 @@ class User(BaseModel):
|
|||||||
user_status: The user_status of this User [Optional].
|
user_status: The user_status of this User [Optional].
|
||||||
"""
|
"""
|
||||||
|
|
||||||
id: Optional[int] = None
|
id: Optional[int] = Field(alias="id", default=None)
|
||||||
username: Optional[str] = None
|
username: Optional[str] = Field(alias="username", default=None)
|
||||||
first_name: Optional[str] = None
|
first_name: Optional[str] = Field(alias="firstName", default=None)
|
||||||
last_name: Optional[str] = None
|
last_name: Optional[str] = Field(alias="lastName", default=None)
|
||||||
email: Optional[str] = None
|
email: Optional[str] = Field(alias="email", default=None)
|
||||||
password: Optional[str] = None
|
password: Optional[str] = Field(alias="password", default=None)
|
||||||
phone: Optional[str] = None
|
phone: Optional[str] = Field(alias="phone", default=None)
|
||||||
user_status: Optional[int] = None
|
user_status: Optional[int] = Field(alias="userStatus", default=None)
|
||||||
|
|
||||||
User.update_forward_refs()
|
User.update_forward_refs()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user