README.md•6.05 kB
# Go API client for gamebrain
GameBrain API
## Overview
This API client was generated by the [OpenAPI Generator](https://openapi-generator.tech) project. By using the [OpenAPI-spec](https://www.openapis.org/) from a remote server, you can easily generate an API client.
- API version: 1.0.1
- Package version: 1.0.2
- Generator version: 7.8.0-SNAPSHOT
- Build package: org.openapitools.codegen.languages.GoClientCodegen
## Installation
Install the following dependencies:
```sh
go get github.com/stretchr/testify/assert
go get golang.org/x/net/context
```
Put the package under your project folder and add the following in import:
```go
import gamebrain "github.com/ddsky/gamebrain-clients/tree/master/go/"
```
To use a proxy, set the environment variable `HTTP_PROXY`:
```go
os.Setenv("HTTP_PROXY", "http://proxy_name:proxy_port")
```
## Configuration of Server URL
Default configuration comes with `Servers` field that contains server objects as defined in the OpenAPI specification.
### Select Server Configuration
For using other server than the one defined on index 0 set context value `gamebrain.ContextServerIndex` of type `int`.
```go
ctx := context.WithValue(context.Background(), gamebrain.ContextServerIndex, 1)
```
### Templated Server URL
Templated server URL is formatted using default variables from configuration or from context value `gamebrain.ContextServerVariables` of type `map[string]string`.
```go
ctx := context.WithValue(context.Background(), gamebrain.ContextServerVariables, map[string]string{
"basePath": "v2",
})
```
Note, enum values are always validated and all unused variables are silently ignored.
### URLs Configuration per Operation
Each operation can use different server URL defined using `OperationServers` map in the `Configuration`.
An operation is uniquely identified by `"{classname}Service.{nickname}"` string.
Similar rules for overriding default operation server index and variables applies by using `gamebrain.ContextOperationServerIndices` and `gamebrain.ContextOperationServerVariables` context maps.
```go
ctx := context.WithValue(context.Background(), gamebrain.ContextOperationServerIndices, map[string]int{
"{classname}Service.{nickname}": 2,
})
ctx = context.WithValue(context.Background(), gamebrain.ContextOperationServerVariables, map[string]map[string]string{
"{classname}Service.{nickname}": {
"port": "8443",
},
})
```
## Documentation for API Endpoints
All URIs are relative to *https://api.gamebrain.co/v1*
Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*DefaultAPI* | [**Detail**](docs/DefaultAPI.md#detail) | **Get** /games/{id} | Get Game Details
*DefaultAPI* | [**News**](docs/DefaultAPI.md#news) | **Get** /games/{id}/news | Get Game News
*DefaultAPI* | [**Search**](docs/DefaultAPI.md#search) | **Get** /games | Search Games
*DefaultAPI* | [**Similar**](docs/DefaultAPI.md#similar) | **Get** /games/{id}/similar | Get Similar Games
*DefaultAPI* | [**Suggest**](docs/DefaultAPI.md#suggest) | **Get** /games/suggestions | Get Game Suggestions
## Documentation For Models
- [GameNewsItem](docs/GameNewsItem.md)
- [GameNewsResponse](docs/GameNewsResponse.md)
- [GameResponse](docs/GameResponse.md)
- [GameResponseOffersInner](docs/GameResponseOffersInner.md)
- [GameResponseOffersInnerPrice](docs/GameResponseOffersInnerPrice.md)
- [GameResponseOfficialStoresInner](docs/GameResponseOfficialStoresInner.md)
- [GameResponsePlatformsInner](docs/GameResponsePlatformsInner.md)
- [GameResponsePlaytime](docs/GameResponsePlaytime.md)
- [GameResponseRating](docs/GameResponseRating.md)
- [SearchResponse](docs/SearchResponse.md)
- [SearchResponseActiveFilterOptionsInner](docs/SearchResponseActiveFilterOptionsInner.md)
- [SearchResponseActiveFilterOptionsInnerValuesInner](docs/SearchResponseActiveFilterOptionsInnerValuesInner.md)
- [SearchResponseFilterOptionsInner](docs/SearchResponseFilterOptionsInner.md)
- [SearchResponseFilterOptionsInnerValuesInner](docs/SearchResponseFilterOptionsInnerValuesInner.md)
- [SearchResponseResultsInner](docs/SearchResponseResultsInner.md)
- [SearchResponseResultsInnerRating](docs/SearchResponseResultsInnerRating.md)
- [SearchResponseSorting](docs/SearchResponseSorting.md)
- [SearchResponseSortingOptionsInner](docs/SearchResponseSortingOptionsInner.md)
- [SearchSuggestionResponse](docs/SearchSuggestionResponse.md)
- [SearchSuggestionResponseResultsInner](docs/SearchSuggestionResponseResultsInner.md)
- [SimilarGamesResponse](docs/SimilarGamesResponse.md)
## Documentation For Authorization
Authentication schemes defined for the API:
### apiKey
- **Type**: API key
- **API key parameter name**: api-key
- **Location**: URL query string
Note, each API key must be added to a map of `map[string]APIKey` where the key is: api-key and passed in as the auth context for each request.
Example
```go
auth := context.WithValue(
context.Background(),
gamebrain.ContextAPIKeys,
map[string]gamebrain.APIKey{
"api-key": {Key: "API_KEY_STRING"},
},
)
r, err := client.Service.Operation(auth, args)
```
### headerApiKey
- **Type**: API key
- **API key parameter name**: x-api-key
- **Location**: HTTP header
Note, each API key must be added to a map of `map[string]APIKey` where the key is: x-api-key and passed in as the auth context for each request.
Example
```go
auth := context.WithValue(
context.Background(),
gamebrain.ContextAPIKeys,
map[string]gamebrain.APIKey{
"x-api-key": {Key: "API_KEY_STRING"},
},
)
r, err := client.Service.Operation(auth, args)
```
## Documentation for Utility Methods
Due to the fact that model structure members are all pointers, this package contains
a number of utility functions to easily obtain pointers to values of basic types.
Each of these functions takes a value of the given basic type and returns a pointer to it:
* `PtrBool`
* `PtrInt`
* `PtrInt32`
* `PtrInt64`
* `PtrFloat`
* `PtrFloat32`
* `PtrFloat64`
* `PtrString`
* `PtrTime`
## Author
mail@gamebrain.co