Add swagger examples and description

This commit is contained in:
2024-05-14 10:21:54 +04:00
parent 6c40917220
commit 0565efdd15
7 changed files with 85 additions and 54 deletions

View File

@@ -1,33 +1,43 @@
from typing import Optional
from pydantic import BaseModel
from fastapi import Body
from pydantic import BaseModel, ConfigDict, Field
class GameCardBase(BaseModel):
title: str
cover: Optional[str] = None
description: Optional[str] = None
version: Optional[str] = None
title: str = Field(examples=["DwarfFortress", "RimWorld"])
cover: Optional[str] = \
Field(default=None, examples=["cover_filename.jpg"])
description: Optional[str] = \
Field(default=None,
examples=["Dwarf Fortress - это игра, которая"
" находится в стадии разработки уже"
" довольно долгое время, но уже собрала"
" большую базу поклонников и довольно хорошие отзывы"])
version: Optional[str] = \
Field(default=None, examples=["50.08 (Steam edition)"])
class GameCard(GameCardBase):
id: int
id: int = Field(examples=[1])
class GameBase(GameCardBase):
torrent_file: str
trailer: Optional[str] = None
torrent_file: str = Field(examples=["torrent_filename.torrent"])
trailer: Optional[str] = \
Field(default=None, examples=[
"https://www.youtube.com/watch?v=xawsp16oxb0"])
system: Optional[str] = None
processor: Optional[str] = None
memory: Optional[str] = None
graphics: Optional[str] = None
storage: Optional[str] = None
developer: Optional[str] = None
language: Optional[str] = None
release_date: Optional[str] = None
download_size: Optional[str] = None
system: Optional[str] = Field(default=None, examples=["Windows"])
processor: Optional[str] = \
Field(default=None, examples=["Любой (от 2Ghz)"])
memory: Optional[str] = Field(default=None, examples=["512Mb"])
graphics: Optional[str] = Field(default=None, examples=["Любая"])
storage: Optional[str] = Field(default=None, examples=["100Mb"])
developer: Optional[str] = Field(default=None, examples=["Bay12Games"])
language: Optional[str] = Field(default=None, examples=["eng/рус"])
release_date: Optional[str] = Field(default=None, examples=["2014"])
download_size: Optional[str] = Field(default=None, examples=["80Mb"])
class GameCreate(GameBase):
@@ -35,10 +45,9 @@ class GameCreate(GameBase):
class Game(GameBase):
id: int
update_date: str
upload_date: str
owner_id: int
id: int = Field(examples=[1])
update_date: str = Field(examples=["2024-05-13 12:00:00"])
upload_date: str = Field(examples=["2024-05-13 12:00:00"])
owner_id: int = Field(examples=[1])
class Config:
from_attributes = True
model_config = ConfigDict(from_attributes=True)