aboutsummaryrefslogtreecommitdiffstats
path: root/notes/golang.txt
blob: 0730f409fb5cbc731c7b61fa8a4453f2fad77467 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

## Database Schema / ORM / Generation

- pq: basic postgres driver and ORM (similar to sqlalchemy?)
- sqlx: small extensions to builtin sql; row to struct mapping

code generation from SQL schema:
- https://github.com/xo/xo
- https://github.com/volatiletech/sqlboiler
- kallax

database migrations:
- goose
- https://github.com/mattes/migrate

maybe also:
- https://github.com/oklog/ulid
  like a UUID, but base32 and "sortable" (timestamp + random)

for auth, start with oauth2... orcid?

debug postgres with gocmdpev

## OpenAPI/Swagger

go-swagger (OpenAPI 2.0):
- generate initial API server skeleton from a yaml definition
- export updated yaml from code after changes
- web UI for documentation
- templating/references
- auto-generate client (in golang)

also look at ReDoc as a UI; all in-brower generated from JSON (react)

## Non-API stuff

- logrus structured logging (or zap?)
- testify tests
- viper config