From 7476d63f0b9adec8087919a776b1bc4bf14b157d Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Wed, 16 May 2018 20:15:33 -0700 Subject: clean up rust README --- rust/README.md | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) (limited to 'rust/README.md') diff --git a/rust/README.md b/rust/README.md index 794afee7..98d742f4 100644 --- a/rust/README.md +++ b/rust/README.md @@ -1,25 +1,46 @@ -Things! +Rust implementation of fatcat API server (`fatcatd`). - sudo apt install libsqlite3-dev libpq-dev +## Development - wget https://oss.sonatype.org/content/repositories/snapshots/io/swagger/swagger-codegen-cli/3.0.0-SNAPSHOT/swagger-codegen-cli-3.0.0-20180411.134218-60.jar +- rust stable, 1.26+ (eg, via "rustup", includes cargo tool) +- diesel (`cargo install diesel_cli`) +- postgres (9.6+; targetting 10.3 for production) +- postgres libs (debian: `sudo apt install libsqlite3-dev libpq-dev`) - cargo swagger ../golang/fatcat-openapi2.yml gen-out +Create a new postgres superuser. A regular postgres user and an existing +database should also work (with up/down migrations), but it's easier to just +blow the entire database away. - diesel print-schema > src/database_schema.rs +Create a `.env` file with configuration: + + DATABASE_URL=postgres://fatcat:tactaf@localhost/fatcat_rs + +Re-create database from scratch: + + diesel database reset + +Build and run: + + cargo run + +### Special Tricks Regenerate API schemas: + cargo install cargo-swagger # uses docker cargo swagger fatcat-openapi2.yml fatcat-api --docker-tag=v2.3.1 sudo chown `whoami`:`whoami` -R fatcat-api # edit fatcat-api/Cargo.toml, set name to "fatcat-api" cargo fmt + # git commit the fatcat-api directory at this point + + diesel print-schema > src/database_schema.rs -Debugging SQL errors: +Debugging SQL schema errors: psql fatcat_rs < migrations/2018-05-12-001226_init/up.sql -Creating entities: +Creating entities via API: http --json post localhost:9411/v0/container name=asdf issn=1234-5678 -- cgit v1.2.3