7 changed files with 0 additions and 144 deletions
@ -1,32 +0,0 @@ |
|||
import yaml |
|||
from fastapi import FastAPI, HTTPException, Request |
|||
from pydantic.v1 import BaseModel, ValidationError |
|||
|
|||
app = FastAPI() |
|||
|
|||
|
|||
class Item(BaseModel): |
|||
name: str |
|||
tags: list[str] |
|||
|
|||
|
|||
@app.post( |
|||
"/items/", |
|||
openapi_extra={ |
|||
"requestBody": { |
|||
"content": {"application/x-yaml": {"schema": Item.schema()}}, |
|||
"required": True, |
|||
}, |
|||
}, |
|||
) |
|||
async def create_item(request: Request): |
|||
raw_body = await request.body() |
|||
try: |
|||
data = yaml.safe_load(raw_body) |
|||
except yaml.YAMLError: |
|||
raise HTTPException(status_code=422, detail="Invalid YAML") |
|||
try: |
|||
item = Item.parse_obj(data) |
|||
except ValidationError as e: |
|||
raise HTTPException(status_code=422, detail=e.errors()) |
|||
return item |
|||
@ -1,29 +0,0 @@ |
|||
from fastapi import FastAPI |
|||
from pydantic.v1 import BaseModel |
|||
|
|||
app = FastAPI() |
|||
|
|||
|
|||
class Item(BaseModel): |
|||
name: str |
|||
description: str | None = None |
|||
price: float |
|||
tax: float | None = None |
|||
|
|||
class Config: |
|||
schema_extra = { |
|||
"examples": [ |
|||
{ |
|||
"name": "Foo", |
|||
"description": "A very nice Item", |
|||
"price": 35.4, |
|||
"tax": 3.2, |
|||
} |
|||
] |
|||
} |
|||
|
|||
|
|||
@app.put("/items/{item_id}") |
|||
async def update_item(item_id: int, item: Item): |
|||
results = {"item_id": item_id, "item": item} |
|||
return results |
|||
@ -1,31 +0,0 @@ |
|||
from typing import Union |
|||
|
|||
from fastapi import FastAPI |
|||
from pydantic.v1 import BaseModel |
|||
|
|||
app = FastAPI() |
|||
|
|||
|
|||
class Item(BaseModel): |
|||
name: str |
|||
description: Union[str, None] = None |
|||
price: float |
|||
tax: Union[float, None] = None |
|||
|
|||
class Config: |
|||
schema_extra = { |
|||
"examples": [ |
|||
{ |
|||
"name": "Foo", |
|||
"description": "A very nice Item", |
|||
"price": 35.4, |
|||
"tax": 3.2, |
|||
} |
|||
] |
|||
} |
|||
|
|||
|
|||
@app.put("/items/{item_id}") |
|||
async def update_item(item_id: int, item: Item): |
|||
results = {"item_id": item_id, "item": item} |
|||
return results |
|||
@ -1,10 +0,0 @@ |
|||
from pydantic.v1 import BaseSettings |
|||
|
|||
|
|||
class Settings(BaseSettings): |
|||
app_name: str = "Awesome API" |
|||
admin_email: str |
|||
items_per_user: int = 50 |
|||
|
|||
class Config: |
|||
env_file = ".env" |
|||
@ -1,10 +0,0 @@ |
|||
from pydantic.v1 import BaseSettings |
|||
|
|||
|
|||
class Settings(BaseSettings): |
|||
app_name: str = "Awesome API" |
|||
admin_email: str |
|||
items_per_user: int = 50 |
|||
|
|||
class Config: |
|||
env_file = ".env" |
|||
@ -1,21 +0,0 @@ |
|||
from fastapi import FastAPI |
|||
from pydantic.v1 import BaseSettings |
|||
|
|||
|
|||
class Settings(BaseSettings): |
|||
app_name: str = "Awesome API" |
|||
admin_email: str |
|||
items_per_user: int = 50 |
|||
|
|||
|
|||
settings = Settings() |
|||
app = FastAPI() |
|||
|
|||
|
|||
@app.get("/info") |
|||
async def info(): |
|||
return { |
|||
"app_name": settings.app_name, |
|||
"admin_email": settings.admin_email, |
|||
"items_per_user": settings.items_per_user, |
|||
} |
|||
Loading…
Reference in new issue