The backend for Karte von morgen written in Rust.
The API is available under http://api.ofdb.io/v0/.
The current API is documented within the openapi.yaml file. You can render the API documentation e.g. with the swagger editor:
- go to https://editor.swagger.io
- go to
File->import URL - enter
https://raw.githubusercontent.com/slowtec/openfairdb/master/openapi.yaml - enjoy ;-)
An other way to see how the API can be used, you can open the network tab in the developer
tools of your browser and see the requests that are made to https://kartevonmorgen.org.
If you want to use the API in your project, please contact us at helmut@bildungsagenten.com. The API might still change sometimes. We will try to let you know in that case.
GET /entries/:ID_1,:ID_2,...,:ID_nPUT /entries/:IDGET /categories/GET /categories/:ID_1,:ID_2,...,:ID_nPOST /ratingsGET /ratingsGET /ratings/:ID_1,:ID_2,...,:ID_nPOST /usersPOST /confirm-email-addressGET /bbox-subscriptionsPOST /subscribe-to-bboxPOST /unsubscribe-all-bboxes
For the following requests one must be logged in:
GET /users/:USERNAME
GET /bbox-subscriptions
POST /subscribe-to-bbox
POST /unsubscribe-all-bboxes
bbox-subscriptions are subscriptions to a certain map area (bounding box,bbox): whenever a new entry is created or an entry is changed within that area, an email notification is sent to the user.
Download the latest build openfairdb_x86_64-unknown-linux-musl_v0.5.1.tar.xz, unpack and start it:
wget https://github.com/slowtec/openfairdb/releases/download/v0.5.1/openfairdb_x86_64-unknown-linux-musl_v0.5.1.tar.xz
tar xJf openfairdb_x86_64-unknown-linux-musl_v0.5.1.tar.xz
./openfairdb
Requirements:
If you're using Ubuntu 16.04 LTS you can run
sudo apt-get install curl libssl-dev gcc
curl https://sh.rustup.rs -sSf | sh
rustup install nightly
rustup default nightly
On windows you can download the installer from rustup.rs. (But don't forget to install a C++ toolchain first).
Installing a specific nightly version with rustup (e.g. 2018-01-04) is easy:
rustup default nightly-2018-01-04
On Ubuntu:
sudo apt-get install sqlite3 libsqlite3-dev
cargo install diesel_cli --no-default-features --features sqlite
git clone https://github.com/slowtec/openfairdb
cd openfairdb/
diesel migration run
cargo build
./target/debug/openfairdb
On NixOS you can build the project with:
nix-build -E '(import <nixpkgs>{}).callPackage ./default.nix {}'
The bundled Makefile can be used to build a static executable without installing any dependencies locally.
Depending on the permissions of your local Docker installation you may need to use sudo for the invocation of make.
The build requires the muslrust Docker image with the corresponding Rust toolchain:
make -f Makefile.x86_64-unknown-linux-musl pre-buildThis command has to be executed at least once and can be repeated for updating the muslrust build image.
Use the following command from the project directory to start the build:
make -f Makefile.x86_64-unknown-linux-muslThe source folder is copied into /tmp and mounted as a volume into the Docker container. The Cargo cache is also stored in /tmp and reused on subsequent invocations.
The resulting executable is copied into the folder bin/x86_64-unknown-linux-musl after the build has completed successfully.
RUST_LOG=debug ./target/debug/openfairdb
If you want to get stacktraces on panics use
export RUST_BACKTRACE=1
At the moment the OpenFairDB does not support online backups. Therefore we use a simple script that copies the DB file once a day.
Note: Currently the rendered class diagram must be updated manually by uploading the contents of the file classes.puml to the PlantUML Online Editor and replace the link for the rendered diagram with one of the generated URLs.
Copyright (c) 2015 - 2018 Markus Kohlhase
This project is licensed under the AGPLv3 license.