Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/noahgorstein/go-stardog
Go library for interacting with Stardog
https://github.com/noahgorstein/go-stardog
Last synced: 23 days ago
JSON representation
Go library for interacting with Stardog
- Host: GitHub
- URL: https://github.com/noahgorstein/go-stardog
- Owner: noahgorstein
- License: mit
- Created: 2022-06-10T14:02:45.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-08-15T16:09:57.000Z (about 1 year ago)
- Last Synced: 2024-04-22T05:14:34.791Z (7 months ago)
- Language: Go
- Size: 1.39 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# go-stardog
![go-stardog](https://user-images.githubusercontent.com/23270779/175647530-ae5a8681-87a6-471d-a03a-4c700610483d.jpg)
[![Go Reference](https://pkg.go.dev/badge/github.com/noahgorstein/go-stardog.svg)](https://pkg.go.dev/github.com/noahgorstein/go-stardog)
[![Go Report Card](https://goreportcard.com/badge/github.com/noahgorstein/go-stardog)](https://goreportcard.com/report/github.com/noahgorstein/go-stardog)
![Coverage](https://img.shields.io/badge/Coverage-98.7%25-brightgreen)go-stardog is a Go client library for interacting with a Stardog server.
## Usage
Usage:
```go
import "github.com/noahgorstein/go-stardog/stardog"
```Construct a new Stardog client, then use the various services on the client to
access different parts of the Stardog API. For example:```go
ctx := context.Background()basicAuthTransport := stardog.BasicAuthTransport{
Username: "admin",
Password: "admin",
}client, _ := stardog.NewClient("http://localhost:5820", basicAuthTransport.Client())
// list all users in the server
users, _, err := client.User.List(ctx)
```The services of a client divide the API into logical chunks and roughly correspond to structure of the [Stardog HTTP API documentation](https://stardog-union.github.io/http-docs/)
> **Note**
> Using the https://godoc.org/context package, one can easily
> pass cancelation signals and deadlines to various services of the client for
> handling a request. In case there is no context available, then `context.Background()`
> can be used as a starting point.For more sample code snippets, head over to the [examples](https://github.com/noahgorstein/go-stardog/tree/main/examples) directory.
## Authentication
The go-stardog library does not directly handle authentication. Instead, when
creating a new client, pass an `http.Client` that can handle authentication for
you.### Basic Authentication
For users who wish to authenticate via username and password (HTTP Basic Authentication), use the `BasicAuthTransport`:
```go
func main() {ctx := context.Background()
basicAuthTransport := stardog.BasicAuthTransport{
Username: "admin",
Password: "admin",
}client, _ := stardog.NewClient("http://localhost:5820", basicAuthTransport.Client())
// list all users in the server
users, _, err := client.User.List(ctx)
}
```### Token Authentication
For users who wish to authenticate via an access token (Bearer Authentication), use the `BearerAuthTransport`:
```go
func main() {ctx := context.Background()
bearerAuthTransport := stardog.BearerAuthTransport{
BearerToken: "...token...",
}client, _ := stardog.NewClient("http://localhost:5820", bearerAuthTransport.Client())
// list all users in the server
users, _, err := client.User.List(ctx)
}
```## Notes
- This library is being actively worked on and is unstable.
- This library is **not** officially maintained by Stardog.