42 lines
756 B
Python
42 lines
756 B
Python
from fastapi import FastAPI
|
|
from pydantic import BaseModel
|
|
from typing import List, Optional
|
|
|
|
app = FastAPI()
|
|
|
|
|
|
# Модель данных
|
|
class Item(BaseModel):
|
|
id: int
|
|
name: str
|
|
|
|
|
|
# Пример данных
|
|
data = [
|
|
Item(id=1, name='Item 1'),
|
|
Item(id=2, name='Item 2')
|
|
]
|
|
|
|
|
|
@app.get('/items', response_model=List[Item])
|
|
def get_items():
|
|
return data
|
|
|
|
|
|
@app.get('/items/{item_id}', response_model=Optional[Item])
|
|
def get_item(item_id: int):
|
|
item = next((item for item in data if item.id == item_id), None)
|
|
return item
|
|
|
|
|
|
@app.post('/items', response_model=Item)
|
|
def create_item(item: Item):
|
|
data.append(item)
|
|
return item
|
|
|
|
|
|
if __name__ == '__main__':
|
|
import uvicorn
|
|
|
|
uvicorn.run(app, host='127.0.0.1', port=8000)
|