Skip to content

alseiitov/gorouter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gorouter

A simple HTTP router for Go.

Reimplemented Custom HTTP Routing in Go to write human-readable routes and to easily parse values from URI.

Install

$ go get -u github.com/alseiitov/gorouter

Example

package main

import (
	"log"
	"net/http"

	"github.com/alseiitov/gorouter"
)

type response struct {
	Name string `json:"name"`
	Age  int    `json:"age"`
}

func userHandler(ctx *gorouter.Context) {
	name, err := ctx.GetStringParam("name")
	if err != nil {
		ctx.WriteError(http.StatusBadRequest, err.Error())
		return
	}

	age, err := ctx.GetIntParam("age")
	if err != nil {
		ctx.WriteError(http.StatusBadRequest, err.Error())
		return
	}

	ctx.WriteJSON(http.StatusOK, response{Name: name, Age: age})
}

func main() {
	router := gorouter.NewRouter()
	router.GET(`/user/:name/:age`, userHandler)

	log.Fatalln(http.ListenAndServe(":9000", router))
}
$ curl -i "http://localhost:9000/user/John/23" 
HTTP/1.1 200 OK
Content-Type: application/json
Date: Wed, 03 Mar 2021 09:56:53 GMT
Content-Length: 24

{"name":"John","age":23}

About

A simple HTTP router for Go

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages