restapi

package module
v0.0.0-...-3af2afe Latest Latest
Warning

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

Go to latest
Published: Sep 27, 2015 License: MIT Imports: 2 Imported by: 0

README

REST-API

REST-API adds a layer on top of go-restful to make it faster to get up and running. It uses some code from the excellent goji project and integrates a few other libraries to facilitate database access, logging, graceful shutdown etc...

Usage example

package main

import (
	"github.com/emicklei/go-restful"
	"github.com/jinzhu/gorm"
	"github.com/johnwilson/restapi"
	"github.com/johnwilson/restapi/plugins"
	"github.com/johnwilson/restapi/system"
)

type MainController struct {
	system.Controller
}

func (ct *MainController) Register(container *restful.Container) {
	ct.Controller.Register(container)

	ws := new(restful.WebService)
	ws.Route(ws.GET("/").To(ct.DBVersion))
	container.Add(ws)
}

func (ct *MainController) DBVersion(r *restful.Request, w *restful.Response) {
	orm := ct.GetPlugin("orm", r).(*gorm.DB)
	res := orm.Raw("SELECT sqlite_version();")
	var version string
	res.Row().Scan(&version)
	msg := map[string]string{"db": version}
	w.WriteJson(msg, "application/json")
}

func main() {
	app := restapi.NewApplication("config.toml")

	// plugins
	app.RegisterPlugin("orm", new(plugins.Gorm))

	ct := MainController{}
	ct.Register(app.Container)
	app.Start()
}
Code source and libraries

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewApplication

func NewApplication(configFile string) *system.Application

Types

This section is empty.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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