Git Product home page Git Product logo

restapi's Introduction

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...

Note: Very concise project. Currently just fixing known bugs.

Usage example

package main

import (
	"github.com/emicklei/go-restful"
	"github.com/jinzhu/gorm"
	"github.com/vulcangz/restapi"
	"github.com/vulcangz/restapi/plugins"
	"github.com/vulcangz/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

restapi's People

Contributors

johnwilson avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.