← Каталог
Проверка взаимодействия компонентов — Реализация веб-сервиса и настройка API
Фрагмент из «Проверка взаимодействия компонентов»: Реализация веб-сервиса и настройка API.
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from typing import Optional
app = FastAPI(title="User Service")
class UserCreate(BaseModel):
name: str
email: str
class UserResponse(BaseModel):
id: int
name: str
email: str
@app.post("/users/", response_model=UserResponse, status_code=201)
async def create_user(user: UserCreate):
try:
user_id = save_user(user.name, user.email)
return {"id": user_id, "name": user.name, "email": user.email}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
@app.get("/users/{user_id}", response_model=UserResponse)
async def read_user(user_id: int):
user_data = get_user(user_id)
if not user_data:
raise HTTPException(status_code=404, detail="User not found")
return user_data from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from typing import Optional
app = FastAPI(title="User Service")
class UserCreate(BaseModel):
name: str
email: str
class UserResponse(BaseModel):
id: int
name: str
email: str
@app.post("/users/", response_model=UserResponse, status_code=201)
async def create_user(user: UserCreate):
try:
user_id = save_user(user.name, user.email)
return {"id": user_id, "name": user.name, "email": user.email}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
@app.get("/users/{user_id}", response_model=UserResponse)
async def read_user(user_id: int):
user_data = get_user(user_id)
if not user_data:
raise HTTPException(status_code=404, detail="User not found")
return user_data