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

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.