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.
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"
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"
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.
If you are familiar with Golang, you can use go install
go install github.com/rest-go/rest
rest -db.url "mysql://username:password@tcp(localhost:3306)/db"
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))
}