Rest Go Rest Save

Rest serves a fully RESTful API from any SQL database

Project README

Rest

ci codecov docker chat

Rest serves a fully RESTful API from any SQL database, PostgreSQL, MySQL, and SQLite are supported for now.

Visit https://rest-go.com for the full documentation, examples, and guides.

Getting Started

Start with Docker

run the server and connect to an existing database

# connect to postgres
docker run -p 3000:3000 restgo/rest -db.url "postgres://user:passwd@localhost:5432/db"

# connect to sqlite file with volume
docker run -p 3000:3000 -v $(pwd):/data restgo/rest -db.url "sqlite:///data/my.db"

Use API

Assume there is a todos table in the database with id, and title fields:

# Create a todo item
curl -XPOST "localhost:3000/todos" -d '{"title": "setup api server", "done": false}'

# Read
curl -XGET "localhost:3000/todos/1"

# Update
curl -XPUT "localhost:3000/todos/1" -d '{"title": "setup api server", "done": true}'

# Delete
curl -XDELETE "localhost:3000/todos/1"

Use the binary

Precompiled binaries

Precompiled binaries for released versions are available on the Releases page, download it to your local machine, and running it directly is the fastest way to use Rest.

Go install

If you are familiar with Golang, you can use go install

go install github.com/rest-go/rest

Run server

rest -db.url "mysql://username:password@tcp(localhost:3306)/db"

Use it as a Go library

It also works to embed the rest server into an existing Go HTTP server

go get github.com/rest-go/rest
package main

import (
	"log"
	"net/http"

	"github.com/rest-go/rest/pkg/server"
)

func main() {
	h := server.New(&server.DBConfig{URL: "sqlite://my.db"}, server.Prefix("/admin"))
	http.Handle("/admin/", h)
	log.Fatal(http.ListenAndServe(":3001", nil))
}
Open Source Agenda is not affiliated with "Rest Go Rest" Project. README Source: rest-go/rest
Stars
97
Open Issues
0
Last Commit
1 month ago
Repository
License

Open Source Agenda Badge

Open Source Agenda Rating