diff options
Diffstat (limited to 'golang/README.md')
-rw-r--r-- | golang/README.md | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/golang/README.md b/golang/README.md new file mode 100644 index 00000000..49410352 --- /dev/null +++ b/golang/README.md @@ -0,0 +1,44 @@ + +This folder contains source for the fatcat API daemon ("fatcatd"), written in +golang. + + +## Structure + +fatcatd is essentially just glue between two declarative schemas: + +- a postgres-flavor SQL database schema +- an OpenAPI/Swagger REST API definition + +## Dev Setup + +- postgres 9.6+ running locally +- golang environment configured + - https://github.com/golang/dep + +On debian/ubuntu: + + sudo -u postgres createuser -s `whoami` + createdb -O `whoami` fatcat + psql fatcat -f fatcat-schema.sql + +## Simplifications + +In early development, we'll make at least the following simplifications: + +- authentication (authn and authz) are not enforced and don't have user + interfaces. actual authentication will be eased in via a microservice and/or + oauth to gitlab/github/orcid.org +- "extra" metadata is stored in-entity as JSONB. In the future this might be + broken out to a separate table +- libraries won't be vendored; in the future they will be via a git submodule + + +## OpenAPI Code Generation + +Install the go-swagger tool: + + go get -u github.com/go-swagger/go-swagger/cmd/swagger + + + swagger generate server -A Fatcat -f fatcat-openapi2.yml |