Postgrest GO
Golang client for PostgREST. The goal of this library is to make an "ORM-like" restful interface.
Documentation
Full documentation can be found here.
Quick start
Install
go get github.com/supabase/postgrest-go
Usage
package main
import (
"fmt"
"github.com/supabase/postgrest-go"
)
func main() {
client := postgrest.NewClient("http://localhost:3000/rest/v1", "", nil)
if client.ClientError != nil {
panic(client.ClientError)
}
result := client.Rpc("add_them", "", map[string]int{"a": 12, "b": 3})
if client.ClientError != nil {
panic(client.ClientError)
}
fmt.Println(result)
}
- select(): https://supabase.com/docs/reference/javascript/select
- insert(): https://supabase.com/docs/reference/javascript/insert
- update(): https://supabase.com/docs/reference/javascript/update
- upsert(): https://supabase.com/docs/reference/javascript/upsert
- delete(): https://supabase.com/docs/reference/javascript/delete
Testing
Some tests are implemented to run against mocked Postgrest endpoints. Optionally, tests can be run against an actual Postgrest instance by setting a POSTGREST_URL
environment variable to the fully-qualified URL to a Postgrest instance, and, optionally, an API_KEY
environment variable (if, for example, testing against a local Supabase instance).
A script is included in the test directory that can be used to seed the test database.
To run all tests:
go test ./...
License
This repo is licensed under the Apache License.
Sponsors
We are building the features of Firebase using enterprise-grade, open source products. We support existing communities wherever possible, and if the products donβt exist we build them and open source them ourselves. Thanks to these sponsors who are making the OSS ecosystem better for everyone.