Welcome to the world of Rest! In this blog, we’ll guide you on how to set up and use a fully RESTful API from various SQL databases like PostgreSQL, MySQL, and SQLite. Plus, if you run into any bumps along the way, we’ve got some troubleshooting tips ready to help.
Getting Started
Before diving into the API, make sure you have Docker installed on your machine, as it simplifies running the Rest server. Let’s get started by connecting to your preferred database!
Connecting to PostgreSQL
To connect to a PostgreSQL database, execute the following command in your terminal:
docker run -p 3000:3000 restgorest -db.url postgres:user:passwd@localhost:5432/db
Connecting to SQLite File
To connect using an SQLite file, you can use:
docker run -p 3000:3000 -v $(pwd):data restgorest -db.url sqlite:data/my.db
Using the API
Once your server is running, you can interact with your database through a simple API. Assume you have a todos table with fields id and title.
Creating a Todo Item
To create a new todo item, use:
curl -XPOST localhost:3000/todos -d title: setup api server, done: false
Reading a Todo Item
To read a specific todo item, execute:
curl -XGET localhost:3000/todos/1
Updating a Todo Item
To update the status of a todo item, use:
curl -XPUT localhost:3000/todos/1 -d title: setup api server, done: true
Deleting a Todo Item
To delete a todo item, run:
curl -XDELETE localhost:3000/todos/1
Using Precompiled Binaries
If you prefer a faster setup, you can download precompiled binaries from the Releases page and run them directly on your machine.
Installing via Go
If you’re familiar with Golang, you can also install Rest directly:
go install github.com/rest-gorest
To run the server, use:
rest -db.url mysql:username:password@tcp(localhost:3306)/db
Embedding Rest as a Go Library
You can even integrate Rest into an existing Go HTTP server with the following code:
package main
import (
"log"
"net/http"
"github.com/rest-gorest/pkg/server"
)
func main() {
h := server.New(server.DBConfigURL: sqlite:my.db, server.Prefix: "/admin")
http.Handle("/admin", h)
log.Fatal(http.ListenAndServe(":3001", nil))
}
Troubleshooting
- If you face issues connecting to the database, double-check your database connection string and ensure your database server is running.
- In case the API endpoints are not responding, try restarting the Docker container or checking the logs for any errors.
- If you encounter permission issues while running SQLite, ensure your user has the necessary access rights to the specified directory.
For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.
Conclusion
At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.

