https://github.com/noahgorstein/go-stardog
Go library for interacting with Stardog
https://github.com/noahgorstein/go-stardog
Last synced: over 1 year 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 (about 4 years ago)
- Default Branch: main
- Last Pushed: 2023-08-15T16:09:57.000Z (almost 3 years ago)
- Last Synced: 2025-01-31T23:46:05.655Z (over 1 year 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

[](https://pkg.go.dev/github.com/noahgorstein/go-stardog)
[](https://goreportcard.com/report/github.com/noahgorstein/go-stardog)

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.