| from typing import Union, Optional |
|
|
| from fastapi import FastAPI |
| from pydantic import BaseModel |
| import uvicorn |
|
|
|
|
| class User(BaseModel): |
| name: str |
| email: str |
| password: str |
|
|
| class Config: |
| orm_mode = True |
|
|
|
|
| app = FastAPI() |
|
|
|
|
| @app.get("/") |
| def read_root(): |
| return {"Hello": "i like this"} |
|
|
|
|
| @app.get("/items/works") |
| def works(): |
| return {"data": [{"id": 1, "name": "test1"}, {"id": 2, "name": "test2"}]} |
|
|
|
|
| @app.get("/items/{item_id}") |
| def read_item(item_id: int, q: Union[str, None] = None): |
| return {"item_id": item_id, "q": q} |
|
|
|
|
| database = {"1": {"name": "test1", "age": 18}, "2": {"name": "test2", "age": 19}} |
|
|
|
|
| @app.get("/user") |
| def read_user(id: str, key: Optional[str] = None): |
| if key: |
| return {"result": database[id][key]} |
| return {"result": database[id]} |
|
|
|
|
| @app.post("/user") |
| def create_user(user: User): |
| print(user) |
| return {"data": f"succeed creating user {user.name}"} |
|
|
|
|
| if __name__ == "__main__": |
| uvicorn.run(app, host="127.0.0.1", port=8000) |
|
|