创建路由
接下来,我们将创建 API 的路由。在此示例中,我们将使用 FastAPI 来创建路由。在 main.py
文件中添加以下内容:
from fastapi import FastAPI, HTTPException
from typing import List
from models import Product, Order, OrderItem
app = FastAPI()
# Mock data
products = [
Product(id=1, name="Product 1", description="Description 1", price=9.99, image_url="https://example.com/product1.png"),
Product(id=2, name="Product 2", description="Description 2", price=19.99),
Product(id=3, name="Product 3", price=29.99)
]
orders = []
# Product routes
@app.get("/products")
async def get_products() -> List[Product]:
return products
@app.get("/products/{product_id}")
async def get_product(product_id: int) -> Product:
for product in products:
if product.id == product_id:
return product
raise HTTPException(status_code=404, detail="Product not found")
# Order routes
@app.post("/orders")
async def create_order(items: List[OrderItem]) -> Order:
order_id = len(orders) 1
order = Order(id=order_id, items=items)
orders.append(order)
return order
@app.get("/orders")
async def get_orders() -> List[Order]:
return orders
@app.get("/orders/{order_id}")
async def get_order(order_id: int) -> Order:
for order in orders:
if order.id == order_id:
return order
raise HTTPException(status_code=404, detail="Order not found")
在上面的代码中,我们使用 FastAPI 来创建了一组简单的路由。我们的 API 允许客户端获取产品列表、获取单个产品、创建订单以及获取订单列表和单个订单。
我们使用了一些简单的模拟数据,以便测试我们的 API。在实际生产环境中,您需要使用数据库或其他持久化存储机制来存储产品和订单数据。