You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.1 KiB
1.1 KiB
quotesdb API
Axum/Tokio REST API for the quotesdb project. Targets Cloudflare Workers (wasm32) in production; runs as a native server for local development and testing.
Endpoints
| Method | Path | Description | Auth |
|---|---|---|---|
| GET | /api/ |
OpenAPI spec (JSON) | None |
| GET | /api/quotes |
Paginated list. Query: ?page=N&author=X&tag=Y |
None |
| GET | /api/quotes/random |
Random quote | None |
| GET | /api/quotes/:id |
Quote by ID | None |
| PUT | /api/quotes |
Create a quote | None |
| POST | /api/quotes/:id |
Update a quote | X-Auth-Code header |
| DELETE | /api/quotes/:id |
Delete a quote | X-Auth-Code header |
Running locally
cargo run # starts on http://localhost:3000
Building for Cloudflare Workers
cargo build --release --bin api --target wasm32-unknown-unknown
Testing
cargo test
Auth
Each quote has an auth_code (4-word passphrase) generated at creation time. Include it in the X-Auth-Code header for update and delete operations. Mismatch returns 403 Forbidden.