1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| from fastapi import APIRouter, FastAPI from pydantic import BaseModel, HttpUrl
app = FastAPI()
class Invoice(BaseModel): id: str customer: str total: float
class InvoiceEvent(BaseModel): description: str paid: bool
invoices_callback_router = APIRouter()
@invoices_callback_router.post( "{$callback_url}/invoices/{$request.body.id}", response_model=dict ) def invoice_notification(body: InvoiceEvent): pass
@app.post("/invoices/", callbacks=invoices_callback_router.routes) def create_invoice(invoice: Invoice, callback_url: HttpUrl = None): """创建发票并触发回调""" return {"msg": "Invoice received"}
|