• Stars
    star
    124
  • Rank 288,207 (Top 6 %)
  • Language
    Go
  • License
    MIT License
  • Created about 3 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Example of how to build a web service using Go, PostgreSQL, and gRPC

pgxtutorial

GoDoc Build Status Coverage Status

This is an accompanying repository of the article Back to basics: Writing an application using Go and PostgreSQL by Henrique Vicente. Feel free to open issues to ask any questions or comment on anything.

Environment variables

pgxtutorial uses the following environment variables:

Environment Variable Description
PostgreSQL environment variables Please check https://www.postgresql.org/docs/current/libpq-envars.html
INTEGRATION_TESTDB When running go test, database tests will only run if INTEGRATION_TESTDB=true
OTEL_EXPORTER When OTEL_EXPORTER=stdout or OTEL_EXPORTER=otel, telemetry is exported

tl;dr

To play with it install Go on your system. You'll need to connect to a PostgreSQL database. You can check if a connection is working by calling psql.

To run tests:

# Run all tests passing INTEGRATION_TESTDB explicitly
$ INTEGRATION_TESTDB=true go test -v ./...

To run application:

# Create a database
$ psql -c "CREATE DATABASE pgxtutorial;"
# Set the environment variable PGDATABASE
$ export PGDATABASE=pgxtutorial
# Run migrations
$ tern migrate -m ./migrations
# Execute application
$ go run ./cmd/pgxtutorial
2021/11/22 07:21:21 HTTP server listening at localhost:8080
2021/11/22 07:21:21 gRPC server listening at 127.0.0.1:8082

See also

More Repositories

1

httpretty

Package httpretty prints the HTTP requests you make with Go pretty on your terminal.
Go
390
star
2

pgq

pgq is a query builder for PostgreSQL written in Go.
Go
43
star
3

picel

picel is a light-weight, blazing fast REST-ful micro service for image processing with a lean API
Go
32
star
4

osx-ulimit

JavaScript
11
star
5

clino

Package clino provides a simple way to create CLI (command-line interface) tools with multiple commands. ๐Ÿถ๐Ÿ•๐Ÿพ๐Ÿพ
Go
11
star
6

require-time

Timer to catch your package slow loading dependencies.
JavaScript
11
star
7

ToggleExclude

Conditional exclude patterns to allow you to browse code faster in Sublime Text.
Python
9
star
8

vendorlicenses

vendorlicenses is a tool to check and concatenate licenses found on the vendor directory of Go programs.
Go
8
star
9

pgtools

Code and infrastructure for working more effectively with PostgreSQL and Go using pgx, tern, and scany.
Go
8
star
10

birthday

8
star
11

rcarweb

Control a RC car with Arduino, node.js and WebSockets
JavaScript
7
star
12

kubeapply

kubeapply is a microservice for running kubectl apply through a web API. This software was built for WeDeploy https://www.wedeploy.com and Liferay DXP Cloud https://www.liferay.com/en-US/products/dxp-cloud
Go
5
star
13

pseudoterm

Framework for running iterative programs programmatically with Go. October 2017 Notice: Google created Expect for Go and it is better than this, therefore the development of this tool is discontinued https://github.com/google/goexpect
Go
5
star
14

climetrics

CLI metrics is a software used for gathering diagnostics and metrics data for Command-Line Interface tools.
Go
4
star
15

vehikel

car ad website project. Project by Henrique Vicente and Rafael Daher.
PHP
4
star
16

ctxsignal

DEPRECATED: Use signal.NotifyContext, available since Go 1.16. Package ctxsignal can be used to create contexts cancelable by system signals. See https://github.com/golang/go/issues/37255
Go
3
star
17

socketio-talk

Talk about a socket.io client for Go https://github.com/henvic/socketio
Go
2
star
18

phantom-casper-simple-talk

Talk on http://www.eventick.com.br/2nd-open-meeting-pernambucojs
JavaScript
2
star
19

MediaLab

This is my pet project, it originated www.plifk.com and had two other children (trazqueeupago.com and http://to-post.it/)
PHP
2
star
20

tel

OpenTelemetry API wrapper to make using opentelemetry-go more idiomatic
Go
1
star
21

wedeploycli

Code for the old WeDeploy/Liferay Cloud Platform CLI (legacy, unmaintained)
Go
1
star
22

write-in-go

1
star
23

henvic

1
star
24

productreview

Go
1
star
25

trigram

Go
1
star
26

picel-js

picel accompanying tool for encoding images
JavaScript
1
star
27

galaxy

Go
1
star