Schnellstart
Dieses Schnellstart-Tutorial zeigt dir, wie du FastOpenAPI zu einer einfachen Anwendung hinzufügst und die generierte API-Dokumentation anzeigen kannst.
Schritt 0. Bibliothek installieren
Folge den Anweisungen unter Installation
Schritt 1. Anwendung erstellen
- Erstelle eine Datei
main.py
- Kopiere den Code aus einem Beispiel
- Für einige Beispiele ist uvicorn erforderlich (
pip install uvicorn
)
Beispiele
AioHTTP
Click to expand the AioHttp Example
from aiohttp import web
from pydantic import BaseModel
from fastopenapi.routers import AioHttpRouter
app = web.Application()
router = AioHttpRouter(app=app)
class HelloResponse(BaseModel):
message: str
@router.get("/hello", tags=["Hello"], status_code=200, response_model=HelloResponse)
async def hello(name: str):
"""Say hello from aiohttp"""
return HelloResponse(message=f"Hello, {name}! It's aiohttp!")
if __name__ == "__main__":
web.run_app(app, host="127.0.0.1", port=8000)
Falcon
Click to expand the Falcon Example
import falcon.asgi
import uvicorn
from pydantic import BaseModel
from fastopenapi.routers import FalconRouter
app = falcon.asgi.App()
router = FalconRouter(app=app)
class HelloResponse(BaseModel):
message: str
@router.get("/hello", tags=["Hello"], status_code=200, response_model=HelloResponse)
async def hello(name: str):
"""Say hello from Falcon"""
return HelloResponse(message=f"Hello, {name}! It's Falcon!")
if __name__ == "__main__":
uvicorn.run(app, host="127.0.0.1", port=8000)
Flask
Click to expand the Flask Example
from flask import Flask
from pydantic import BaseModel
from fastopenapi.routers import FlaskRouter
app = Flask(__name__)
router = FlaskRouter(app=app)
class HelloResponse(BaseModel):
message: str
@router.get("/hello", tags=["Hello"], status_code=200, response_model=HelloResponse)
def hello(name: str):
"""Say hello from Flask"""
return HelloResponse(message=f"Hello, {name}! It's Flask!")
if __name__ == "__main__":
app.run(port=8000)
Quart
Click to expand the Quart Example
from pydantic import BaseModel
from quart import Quart
from fastopenapi.routers import QuartRouter
app = Quart(__name__)
router = QuartRouter(app=app)
class HelloResponse(BaseModel):
message: str
@router.get("/hello", tags=["Hello"], status_code=200, response_model=HelloResponse)
async def hello(name: str):
"""Say hello from Quart"""
return HelloResponse(message=f"Hello, {name}! It's Quart!")
if __name__ == "__main__":
app.run(port=8000)
Sanic
Click to expand the Sanic Example
from pydantic import BaseModel
from sanic import Sanic
from fastopenapi.routers import SanicRouter
app = Sanic("MySanicApp")
router = SanicRouter(app=app)
class HelloResponse(BaseModel):
message: str
@router.get("/hello", tags=["Hello"], status_code=200, response_model=HelloResponse)
async def hello(name: str):
"""Say hello from Sanic"""
return HelloResponse(message=f"Hello, {name}! It's Sanic!")
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8000)
Starlette
Click to expand the Starlette Example
import uvicorn
from pydantic import BaseModel
from starlette.applications import Starlette
from fastopenapi.routers import StarletteRouter
app = Starlette()
router = StarletteRouter(app=app)
class HelloResponse(BaseModel):
message: str
@router.get("/hello", tags=["Hello"], status_code=200, response_model=HelloResponse)
async def hello(name: str):
"""Say hello from Starlette"""
return HelloResponse(message=f"Hello, {name}! It's Starlette!")
if __name__ == "__main__":
uvicorn.run(app, host="127.0.0.1", port=8000)
Tornado
Click to expand the Tornado Example
import asyncio
from pydantic import BaseModel
from tornado.web import Application
from fastopenapi.routers.tornado import TornadoRouter
app = Application()
router = TornadoRouter(app=app)
class HelloResponse(BaseModel):
message: str
@router.get("/hello", tags=["Hello"], status_code=200, response_model=HelloResponse)
def hello(name: str):
"""Say hello from Tornado"""
return HelloResponse(message=f"Hello, {name}! It's Tornado!")
async def main():
app.listen(8000)
await asyncio.Event().wait()
if __name__ == "__main__":
asyncio.run(main())
Schritt 2. Server starten
python main.py
Nach dem Start ist die Dokumentation erreichbar unter:
Swagger UI
http://127.0.0.1:8000/docs
Interaktive API-Dokumentation mit Swagger UI:
ReDoc
http://127.0.0.1:8000/redoc
Alternative Dokumentation mit ReDoc:
Generierte Endpunkte
Nach dem Start sind diese Endpunkte verfügbar:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
- OpenAPI JSON: http://localhost:8000/openapi.json