Move API docs to conventional paths: /docs, /redoc, /openapi.json
Users expect Swagger at /docs; the app had mounted them under /api/*. Also normalize user-facing product name to "SHONAR" in the app title and root route (Python package stays shonar), and regenerate the shared OpenAPI contract.
This commit is contained in:
parent
b50f9d8517
commit
f01900be84
3 changed files with 14 additions and 11 deletions
|
|
@ -34,8 +34,9 @@ cp .env.example .env
|
|||
docker compose up -d --build
|
||||
```
|
||||
|
||||
Then open `http://localhost:8000/api/docs` for the interactive API docs and
|
||||
point the Android app at your server URL.
|
||||
Then open `http://localhost:8000/docs` for the interactive API docs and
|
||||
point the Android app at your server URL. (ReDoc at `/redoc`, raw schema at
|
||||
`/openapi.json`.)
|
||||
|
||||
The default compose stack is: API + worker + PostgreSQL + Redis, with audio
|
||||
stored on the local filesystem. No paid cloud service is required.
|
||||
|
|
@ -84,7 +85,7 @@ you always know if your audio or text leaves your machine.
|
|||
## Documentation
|
||||
|
||||
- [docs/self-hosting.md](docs/self-hosting.md) — deployment, HTTPS, backups
|
||||
- [docs/api.md](docs/api.md) — API overview (OpenAPI at `/api/docs`)
|
||||
- [docs/api.md](docs/api.md) — API overview (OpenAPI at `/openapi.json`)
|
||||
- [docs/security.md](docs/security.md) — security model and honest limits
|
||||
- [docs/architecture.md](docs/architecture.md) — system design
|
||||
- [docs/recording-consent.md](docs/recording-consent.md) — legal notice
|
||||
|
|
|
|||
|
|
@ -34,15 +34,17 @@ async def lifespan(app: FastAPI):
|
|||
|
||||
|
||||
app = FastAPI(
|
||||
title="S.H.O.N.A.R. API",
|
||||
title="SHONAR API",
|
||||
description=(
|
||||
"Self-hosted Oral Notes and Audio Recorder — REST API. All data stays on your server."
|
||||
"SHONAR — Self-hosted Oral Notes and Audio Recorder. REST API. "
|
||||
"All data stays on your server."
|
||||
),
|
||||
version=__version__,
|
||||
lifespan=lifespan,
|
||||
docs_url="/api/docs",
|
||||
redoc_url="/api/redoc",
|
||||
openapi_url="/api/openapi.json",
|
||||
# Interactive docs at the conventional paths.
|
||||
docs_url="/docs",
|
||||
redoc_url="/redoc",
|
||||
openapi_url="/openapi.json",
|
||||
)
|
||||
|
||||
app.state.limiter = limiter
|
||||
|
|
@ -61,4 +63,4 @@ app.include_router(api_router)
|
|||
|
||||
@app.get("/")
|
||||
async def root():
|
||||
return {"app": "S.H.O.N.A.R.", "docs": "/api/docs", "health": "/api/v1/healthz"}
|
||||
return {"app": "SHONAR", "docs": "/docs", "health": "/api/v1/healthz"}
|
||||
|
|
|
|||
|
|
@ -327,8 +327,8 @@
|
|||
}
|
||||
},
|
||||
"info": {
|
||||
"description": "Self-hosted Oral Notes and Audio Recorder \u2014 REST API. All data stays on your server.",
|
||||
"title": "S.H.O.N.A.R. API",
|
||||
"description": "SHONAR \u2014 Self-hosted Oral Notes and Audio Recorder. REST API. All data stays on your server.",
|
||||
"title": "SHONAR API",
|
||||
"version": "0.1.0"
|
||||
},
|
||||
"openapi": "3.1.0",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue