crabfit/api/README.md
2023-05-15 23:51:12 +10:00

27 lines
1.1 KiB
Markdown

# Crab Fit API
This is the API for Crab Fit, written in Rust. It uses the [axum](https://crates.io/crates/axum) framework to run a HTTP server, and supports multiple storage adaptors.
## API docs
OpenAPI compatible API docs are generated using [utoipa](https://crates.io/crates/utoipa). You can visit them at [https://api.crab.fit/docs](https://api.crab.fit/docs).
## Storage adaptors
| Adaptor | Works with |
| ------- | ---------- |
| `memory-adaptor` | Stores data in memory |
| `sql-adaptor` | Postgres, MySQL, SQLite |
| `datastore-adaptor` | Google Datastore |
To choose an adaptor, specify it in the `features` when compiling, e.g. `cargo run --features sql-adaptor`.
Some adaptors require environment variables to be set. You can specify them in a `.env` file and they'll be loaded in using [dotenvy](https://crates.io/crates/dotenvy). See a specific adaptor's readme for more information.
> **Note**
> `memory-adaptor` is the default if no features are specified. Ensure you specify a different adaptor when deploying.
### Adding an adaptor
See [adding an adaptor](adaptors/README.md#adding-an-adaptor) in the adaptors readme.