Documentation ¶
Overview ¶
Package http implements driver.Connection using an HTTP connection.
This connection uses HTTP or HTTPS to connect to the ArangoDB database and encodes its content as JSON or Velocypack, depending on the value of the `ContentType` fields in the `http.ConnectionConfig`.
Creating an Insecure Connection ¶
To create an HTTP connection, use code like this.
// Create an HTTP connection to the database conn, err := http.NewConnection(http.ConnectionConfig{ Endpoints: []string{"http://localhost:8529"}, }) if err != nil { // Handle error }
The resulting connection is used to create a client which you will use for normal database requests.
// Create a client c, err := driver.NewClient(driver.ClientConfig{ Connection: conn, }) if err != nil { // Handle error }
Creating a Secure Connection ¶
To create a secure HTTPS connection, use code like this.
// Create an HTTPS connection to the database conn, err := http.NewConnection(http.ConnectionConfig{ Endpoints: []string{"https://localhost:8529"}, TLSConfig: &tls.Config{ InsecureSkipVerify: trueWhenUsingNonPublicCertificates, }, }) if err != nil { // Handle error }
Index ¶
Constants ¶
View Source
const ( DefaultMaxIdleConnsPerHost = 64 DefaultConnLimit = 32 )
Variables ¶
This section is empty.
Functions ¶
func NewConnection ¶
func NewConnection(config ConnectionConfig) (driver.Connection, error)
NewConnection creates a new HTTP connection based on the given configuration settings.
Types ¶
type ConnectionConfig ¶
type ConnectionConfig struct { // Endpoints holds 1 or more URL's used to connect to the database. // In case of a connection to an ArangoDB cluster, you must provide the URL's of all coordinators. Endpoints []string // TLSConfig holds settings used to configure a TLS (HTTPS) connection. // This is only used for endpoints using the HTTPS scheme. TLSConfig *tls.Config // Transport allows the use of a custom round tripper. // If Transport is not of type `*http.Transport`, the `TLSConfig` property is not used. // Otherwise a `TLSConfig` property other than `nil` will overwrite the `TLSClientConfig` // property of `Transport`. // // When using a custom `http.Transport`, make sure to set the `MaxIdleConnsPerHost` field at least as // high as the maximum number of concurrent requests you will make to your database. // A lower number will cause the golang runtime to create additional connections and close them // directly after use, resulting in a large number of connections in `TIME_WAIT` state. // When this value is not set, the driver will set it to 64 automatically. Transport http.RoundTripper // DontFollowRedirect; if set, redirect will not be followed, response from the initial request will be returned without an error // DontFollowRedirect takes precendance over FailOnRedirect. DontFollowRedirect bool // FailOnRedirect; if set, redirect will not be followed, instead the status code is returned as error FailOnRedirect bool // Cluster configuration settings cluster.ConnectionConfig // ContentType specified type of content encoding to use. ContentType driver.ContentType // ConnLimit is the upper limit to the number of connections to a single server. // The default is 32 (DefaultConnLimit). // Set this value to -1 if you do not want any upper limit. ConnLimit int }
ConnectionConfig provides all configuration options for a HTTP connection.
Click to show internal directories.
Click to hide internal directories.