27 lines
1.1 KiB
Markdown
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.
|