валидировать (заголовки?) что-то, названия не знаю.
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
name: str
description: Optional[str] = None
@app.put("/items")
async def update_item(item: Item):
return results
#127.0.0.1/items?name=loh
было бы круто заменить это на
app = FastAPI()
interface Item:
name: str
description?: str
@app.put("/items")
async def update_item(item: Item):
return results
#127.0.0.1/items?name=loh
да, я понимаю, что пидантик все еще будет нужен.
б)мне, лично, при прочтении "банды 4" было не совсем ясно что такое интерфейс в питоне.
в) замена zope interfaces
interface Item:
name: str
description?: str
class Podushka(Item):
def __init__(self,name):
self.name = name.replace("Valera", "vale ra")
г) тайпинги для диктов
interface Item:
name: str
description?: str
jopa: Item = {"name": "wutwutwut"} # проходите
jopa: Item = {"name": "asdfg", "losyash":"djivotnoe"} # mypy: validation error
После прочтения банды четырёх должно быть абсолютно понятно, что интерфейс - просто набор сигнатур. Он обязан быть частью языка
Обсуждают сегодня