go-server-template

command module
v0.0.0-...-20495d9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 20, 2022 License: MIT Imports: 5 Imported by: 0

README

Go micro-service in ~30 minutes

This is a Go micro-service written from scratch.

It shows how to use net/http, and how to structure a Go project.

It relies on Go 1.11 Beta 2 and the upcoming "Go modules" (formerly known as "vgo") support.

Dependency injection is used to insert a logger instance into the handler.

You can also notice how the test is constructed in order to provide testing for the handler.

A Docker container is available, thanks to the Dockerfile. It shows how to construct such containers.

How to use

Because this project uses go modules, as long as you are using Go 1.11 Beta 2+ or Go 1.10 with vgo support, you should be ok.

Clone this anywhere in your computer and create a project in your editor. I'm using GoLand IDE in order to work on the project during the presentation as well as have support for go modules.

The bundled, self-signed, certificates are bound to either dev.localhost:8080 or docker.localhost:8080. I obviously do not recommend using these in production.

I created this as part of the presentation at GopherCon UK 18.

The link for the video will be updated here when the presentation is out.

References

Structuring Go applications

In order to learn how to approach package design in Go, you can read the following resources:

Once done, this article will help you understand the Design Philosophy On Packaging by William Kennedy.

Exposing Go applications to the Internet

This article describes how you can start approaching

Thank you

I would like to thank you William "Bill" Kennedy for the inspiration he provided on getting me to do this talk.

License

This project is under the MIT license. Please see the LICENSE file for more details.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL