README
¶
Rockset Go Client
Official Go client library for Rockset
Installation
Install the Rockset Go client from Github:
go get github.com/rockset/rockset-go-client
or install it from a source code checkout:
cd $GOPATH/src/github.com
mkdir rockset
cd rockset
git clone git@github.com:rockset/rockset-go-client.git
go install rockset-go-client/rockclient.go
Usage
You can see a few examples in the godoc of how to create a collection, how to put documents in a collection and how to use SQL to query your collections.
client, err := rockset.NewClient(rockset.WithAPIKey("..."))
if err != nil {
log.Fatal(err)
}
q := models.QueryRequest{
Sql: &models.QueryRequestSql{
Query: `SELECT * FROM "_events" LIMIT 1`,
},
}
res, _, err := client.Query(q)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", res)
Testing
Tests are available in the test folder.
Set ROCKSET_APIKEY and ROCKSET_APISERVER endpoint in the environment variables. To run tests:
go test ./...
Support
Feel free to log issues against this client through GitHub.
License
The Rockset Go Client is licensed under the Apache 2.0 License
Documentation
¶
Overview ¶
Example (AddDocument) ¶
Output: created collection go-test-add-docs-collection document status: ADDED deleted collection go-test-add-docs-collection
Example (CreateCollection) ¶
Output: created collection go-test-collection collection status for go-test-collection: CREATED deleted collection go-test-collection
Example (CreateIntegration) ¶
Output:
Example (CreateS3Collection) ¶
Output:
Example (ErrorHandling) ¶
Output: NotFound: Could not find workspace with name 'non-existing-workspace'
Example (QueryLambda) ¶
Example code to create, use, and delete a Query Lambda
Output: created Query Lambda MyQueryLambda query result: map[echo:Hello, world!] query result: map[echo:All work and no play makes Jack a dull boy] deleted Query Lambda MyQueryLambda
Index ¶
- Constants
- func AsRocksetError(err error) (api.ErrorModel, bool)
- type RockClient
- func (rc *RockClient) CreateWorkspace(name, description string) (api.Workspace, *http.Response, error)
- func (rc *RockClient) DeleteWorkspace(name string) (api.Workspace, *http.Response, error)
- func (rc *RockClient) GetWorkspace(name string) (api.Workspace, *http.Response, error)
- func (rc *RockClient) ListWorkspaces() ([]api.Workspace, *http.Response, error)
- func (rc *RockClient) Organization() (api.Organization, *http.Response, error)
- func (rc *RockClient) Query(request api.QueryRequest) (api.QueryResponse, *http.Response, error)
- func (rc *RockClient) Validate() error
- type RockOption
Examples ¶
Constants ¶
const APIKeyEnvironmentVariableName = "ROCKSET_APIKEY"
const APIServerEnvironmentVariableName = "ROCKSET_APISERVER"
const DefaultAPIServer = "https://api.rs2.usw2.rockset.com"
DefaultAPIServer is the default Rockset API server to use
const Version = "0.10.0"
Version is the Rockset client version
Variables ¶
Functions ¶
func AsRocksetError ¶
func AsRocksetError(err error) (api.ErrorModel, bool)
AsRocksetError takes an error returned from an API call and returns the underlying error message
Types ¶
type RockClient ¶
type RockClient struct { // API Services ApiKeys *api.ApiKeysApiService Collection *api.CollectionsApiService Integration *api.IntegrationsApiService Documents *api.DocumentsApiService QueryApi *api.QueriesApiService Users *api.UsersApiService Organizations *api.OrganizationsApiService QueryLambdas *api.QueryLambdasApiService Workspaces *api.WorkspacesApiService // contains filtered or unexported fields }
Example (QueryParam) ¶
Output: got 1 response(s)
func Client ¶
func Client(apiKey string, apiServer string) *RockClient
Create a Client object to securely connect to Rockset using an API key Optionally, an alternate API server host can also be provided.
Deprecated: this function has been superseded by NewClient()
func NewClient ¶
func NewClient(options ...RockOption) (*RockClient, error)
NewClient creates a new Rockset client.
Accessing the online database requires an API key, which you either have to supply through the ROCKSET_APIKEY environment variable and pass the FromEnv() option
c, err := rockset.NewClient(rockset.FromEnv())
or explicitly using the WithAPIKey() option
c, err := rockset.NewClient(rockset.WithAPIKey("..."))
func (*RockClient) CreateWorkspace ¶
func (rc *RockClient) CreateWorkspace(name, description string) (api.Workspace, *http.Response, error)
CreateWorkspace creates a new workspace
func (*RockClient) DeleteWorkspace ¶
DeleteWorkspace deletes the workspace with name
func (*RockClient) GetWorkspace ¶
GetWorkspace gets the workspace with name
func (*RockClient) ListWorkspaces ¶
ListWorkspaces list all workspaces
func (*RockClient) Organization ¶
func (rc *RockClient) Organization() (api.Organization, *http.Response, error)
Organization returns the organization the RockClient belongs to
func (*RockClient) Query ¶
func (rc *RockClient) Query(request api.QueryRequest) (api.QueryResponse, *http.Response, error)
Query executes a query request against Rockset
Example ¶
This example runs a query against Rockset
Output: got 1 row(s)
func (*RockClient) Validate ¶
func (rc *RockClient) Validate() error
Validate validates and sets the Rockset client configuration options
type RockOption ¶
type RockOption func(rc *RockClient)
RockOption is the type for RockClient options
func FromEnv ¶
func FromEnv() RockOption
FromEnv sets API key and API server from the environment variables ROCKSET_APIKEY and ROCKSET_APISERVER, and if ROCKSET_APISERVER is not set, it will use the default API server.
func WithHTTPClient ¶
func WithHTTPClient(c *http.Client) RockOption
WithHTTPClient sets the HTTP client. Without this option RockClient uses the http.DefaultClient, which does not have a timeout.
func WithTimeout ¶
func WithTimeout(t time.Duration) RockOption
WithTimeout sets the HTTP client timeout, and will override any value set using using the WithHTTPClient() option