go-example-twirp

module
v0.0.0-...-f5e2105 Latest Latest
Warning

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

Go to latest
Published: Nov 1, 2018 License: MIT

README

go-example-twirp

Go example for Twitch's Twirp RPC framework

What is Twirp

Twirp is a framework for service-to-service communication emphasizing simplicity and minimalism. It generates routing and serialization from API definition files and lets you focus on your application's logic instead of thinking about folderol like HTTP methods and paths and JSON.

See Twirp official repository.

Introduction

All executables are located at the cmd directory.

Examples

There are 5 examples:

  • Clients
    • grpc-client: Can connect to grpc-server and hybrid-server
    • twirp-client: Can connect to twirp-server and hybrid-server
  • Servers
    • grpc-server: Can be connected by grpc-client
    • twirp-server: Can be connected by twirp-client and cURL
    • hybrid-server: Can be connected by grpc-client, twirp-client and cURL

Usage

Run server
$ ./build/bin/grpc-server

or

$ ./build/bin/twirp-server

or

$ ./build/bin/hybrid-server
Run client
$ ./build/bin/grpc-client

or

$ ./build/bin/twirp-client
cURL example

HTTP endpoints: http://host:port/twirp/am.is.PetstoreService/<method>

$ curl -s -XPOST http://localhost:8000/twirp/am.is.PetstoreService/AddPet --header "Content-Type:application/json" --data '{"pet": {"name": "Test"}}' | jq

Output

{
  "name": "Test"
}
Development

Build all executables

$ make all

Generate code from protobuf

$ make gen

Clean all executables

$ make clean

Run go test

$ make test

Run dep ensure

$ make deps
Docker

Build docker image

$ make docker

Push docker image

$ make docker-push

Note: Be sure to set DOCKER_REPOSITORY in Makefile for your own before building and pushing the docker image.

License

The MIT License

Directories

Path Synopsis
Package api is a generated twirp stub package.
Package api is a generated twirp stub package.
cmd

Jump to

Keyboard shortcuts

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