35 lines
760 B
Python
35 lines
760 B
Python
from fastapi import FastAPI, HTTPException
|
|
from pydantic import BaseModel
|
|
|
|
app = FastAPI()
|
|
|
|
users_db = {}
|
|
next_id = 1
|
|
|
|
# DTO : Data Transfer Object
|
|
class CreateUserDTO(BaseModel):
|
|
name: str
|
|
email: str
|
|
|
|
@app.post("/users")
|
|
async def create_user(json: CreateUserDTO):
|
|
global next_id
|
|
user_id = next_id
|
|
next_id += 1
|
|
users_db[user_id] = {
|
|
"id": user_id,
|
|
"name": json.name,
|
|
"email": json.email
|
|
}
|
|
return users_db[user_id]
|
|
|
|
@app.get("/users/{user_id}")
|
|
async def get_user(user_id: int):
|
|
user = users_db.get(user_id)
|
|
if not user:
|
|
raise HTTPException(status_code=404, detail="User not found")
|
|
return user
|
|
|
|
@app.get("/health")
|
|
def health():
|
|
return {"status": "ok", "service": "user-service"} |