* Generate project with open-api-generator * Add example project * Create wrapper class
17 KiB
Tribufu - the C# library for the Tribufu API
REST API to access Tribufu services.
This C# SDK is automatically generated by the OpenAPI Generator project:
- API version: 1.1.0
- SDK version: 1.0.0
- Generator version: 7.8.0
- Build package: org.openapitools.codegen.languages.CSharpClientCodegen For more information, please visit https://www.tribufu.com/contact
Frameworks supported
Dependencies
- Json.NET - 13.0.2 or later
- JsonSubTypes - 1.8.0 or later
- System.ComponentModel.Annotations - 5.0.0 or later
The DLLs included in the package may not be the latest version. We recommend using NuGet to obtain the latest version of the packages:
Install-Package Newtonsoft.Json
Install-Package JsonSubTypes
Install-Package System.ComponentModel.Annotations
Installation
Run the following command to generate the DLL
- [Mac/Linux]
/bin/sh build.sh
- [Windows]
build.bat
Then include the DLL (under the bin
folder) in the C# project, and use the namespaces:
using Tribufu.Api;
using Tribufu.Client;
using Tribufu.Model;
Packaging
A .nuspec
is included with the project. You can follow the Nuget quickstart to create and publish packages.
This .nuspec
uses placeholders from the .csproj
, so build the .csproj
directly:
nuget pack -Build -OutputDirectory out Tribufu.csproj
Then, publish to a local feed or other host and consume the new package via Nuget as usual.
Usage
To use the API client with a HTTP proxy, setup a System.Net.WebProxy
Configuration c = new Configuration();
System.Net.WebProxy webProxy = new System.Net.WebProxy("http://myProxyUrl:80/");
webProxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
c.Proxy = webProxy;
Connections
Each ApiClass (properly the ApiClient inside it) will create an instance of HttpClient. It will use that for the entire lifecycle and dispose it when called the Dispose method.
To better manager the connections it's a common practice to reuse the HttpClient and HttpClientHandler (see here for details). To use your own HttpClient instance just pass it to the ApiClass constructor.
HttpClientHandler yourHandler = new HttpClientHandler();
HttpClient yourHttpClient = new HttpClient(yourHandler);
var api = new YourApiClass(yourHttpClient, yourHandler);
If you want to use an HttpClient and don't have access to the handler, for example in a DI context in Asp.net Core when using IHttpClientFactory.
HttpClient yourHttpClient = new HttpClient();
var api = new YourApiClass(yourHttpClient);
You'll loose some configuration settings, the features affected are: Setting and Retrieving Cookies, Client Certificates, Proxy settings. You need to either manually handle those in your setup of the HttpClient or they won't be available.
Here an example of DI setup in a sample web project:
services.AddHttpClient<YourApiClass>(httpClient =>
new PetApi(httpClient));
Getting Started
using System.Collections.Generic;
using System.Diagnostics;
using System.Net.Http;
using Tribufu.Api;
using Tribufu.Client;
using Tribufu.Model;
namespace Example
{
public class Example
{
public static void Main()
{
Configuration config = new Configuration();
config.BasePath = "http://localhost";
// Configure API key authorization: ApiKey
config.ApiKey.Add("Authorization", "YOUR_API_KEY");
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// config.ApiKeyPrefix.Add("Authorization", "Bearer");
// create instances of HttpClient, HttpClientHandler to be reused later with different Api classes
HttpClient httpClient = new HttpClient();
HttpClientHandler httpClientHandler = new HttpClientHandler();
var apiInstance = new TribufuApi(httpClient, config, httpClientHandler);
var authorizeRequest = new AuthorizeRequest?(); // AuthorizeRequest? | (optional)
try
{
// Authorize the client to access the user information.
apiInstance.Authorize(authorizeRequest);
}
catch (ApiException e)
{
Debug.Print("Exception when calling TribufuApi.Authorize: " + e.Message );
Debug.Print("Status Code: "+ e.ErrorCode);
Debug.Print(e.StackTrace);
}
}
}
}
Documentation for API Endpoints
All URIs are relative to http://localhost
Class | Method | HTTP request | Description |
---|---|---|---|
TribufuApi | Authorize | POST /v1/oauth2/authorize | Authorize the client to access the user information. |
TribufuApi | ChangeEmail | PUT /v1/users/{id}/email | Change the email of a user. |
TribufuApi | ChangePassword | PUT /v1/users/{id}/password | Change the password of a user. |
TribufuApi | ClaimGameServer | PUT /v1/servers/{id}/claim | Claim a game server. |
TribufuApi | ConvertBase64 | POST /v1/utils/base64 | Convert a string to base64 or vice versa. |
TribufuApi | CreateGameServer | POST /v1/servers | Create a new game server. |
TribufuApi | CreateGameServerCluster | POST /v1/clusters | Create a new game server cluster. |
TribufuApi | CreateGroup | POST /v1/groups | Create a new group. |
TribufuApi | CreateToken | POST /v1/oauth2/token | Create a new token with grant type. |
TribufuApi | DeleteGameServer | DELETE /v1/servers/{id} | Delete a game server. |
TribufuApi | DeleteGameServerCluster | DELETE /v1/clusters/{id} | Delete a game server cluster. |
TribufuApi | DeleteGroup | DELETE /v1/groups/{id} | Delete a group. |
TribufuApi | GenerateFlakeId | GET /v1/utils/flake | Generate one or more flake ids. |
TribufuApi | GenerateFlakeIdFromTimestamp | GET /v1/utils/flake/{timestamp} | Generate one or more flake ids from a timestamp. |
TribufuApi | GeneratePassword | GET /v1/utils/password | Generate a random password. |
TribufuApi | GenerateUuid | GET /v1/utils/uuid | Generate one or more uuids with a specific version. |
TribufuApi | GetClientInfo | GET /v1/oauth2/clientinfo | Get current client information. |
TribufuApi | GetCurrentIpAddress | GET /v1/geoip | Get current ip address location. |
TribufuApi | GetGameById | GET /v1/games/{id} | Get a game by id. |
TribufuApi | GetGameClustersByGameId | GET /v1/games/{id}/clusters | Get a list of game server clusters of a game. |
TribufuApi | GetGameItems | GET /v1/games/{id}/items | Get a list of game items. |
TribufuApi | GetGameServerByAddressAndQueryPort | GET /v1/servers/address/{address}:{port} | Get a game server by address and query port. |
TribufuApi | GetGameServerById | GET /v1/servers/{id} | Get a game server by id. |
TribufuApi | GetGameServerClusterById | GET /v1/clusters/{id} | Get a game server cluster by id. |
TribufuApi | GetGameServerClusters | GET /v1/clusters | Get a list of game server clusters. |
TribufuApi | GetGameServers | GET /v1/servers | Get a list of game servers. |
TribufuApi | GetGameServersByCountry | GET /v1/servers/country/{country} | Get a list of game servers from a country. |
TribufuApi | GetGameServersByGameId | GET /v1/games/{id}/servers | Get a list of game servers of a game. |
TribufuApi | GetGameServersCountries | GET /v1/servers/countries | Get a list of countries with the number of game servers. |
TribufuApi | GetGameServersMetrics | GET /v1/servers/metrics | Get metrics about the tracked game servers. |
TribufuApi | GetGames | GET /v1/games | Get a list of games. |
TribufuApi | GetGroupById | GET /v1/groups/{id} | Get a group by id. |
TribufuApi | GetGroupByTag | GET /v1/groups/tag/{tag} | Get a group by tag. |
TribufuApi | GetGroupByUuid | GET /v1/groups/uuid/{uuid} | Get a group by uuid. |
TribufuApi | GetGroupGames | GET /v1/groups/{id}/games | Get a list of games of a group. |
TribufuApi | GetGroupMembers | GET /v1/groups/{id}/members | Get a list of members in a group. |
TribufuApi | GetGroups | GET /v1/groups | Get a list of groups. |
TribufuApi | GetIpAddress | GET /v1/geoip/addresses/{address} | Get a ip address location. |
TribufuApi | GetIpAddresses | GET /v1/geoip/addresses | Get a list of ip addresses. |
TribufuApi | GetLeaderboard | GET /v1/leaderboard | Get the top 20 leaderboard users. |
TribufuApi | GetMe | GET /v1/me | Get current user information. |
TribufuApi | GetPackageById | GET /v1/packages/{id} | Get a package by id. |
TribufuApi | GetPackages | GET /v1/packages | Get a list of packages. |
TribufuApi | GetPublicKeys | GET /v1/oauth2/jwks | Get the public keys for the client. |
TribufuApi | GetSubscriptionById | GET /v1/subscriptions/{id} | Get a subscription by id. |
TribufuApi | GetSubscriptions | GET /v1/subscriptions | Get a list of subscriptions. |
TribufuApi | GetUserAccounts | GET /v1/users/{id}/accounts | Get a list of connected accounts of the user. |
TribufuApi | GetUserById | GET /v1/users/{id} | Get a user profile by id. |
TribufuApi | GetUserByName | GET /v1/users/name/{name} | Get a user profile by name. |
TribufuApi | GetUserByUuid | GET /v1/users/uuid/{uuid} | Get a user profile by uuid. |
TribufuApi | GetUserFriends | GET /v1/users/{id}/friends | Get a list of friends of the user. |
TribufuApi | GetUserGames | GET /v1/users/{id}/games | Get a list of games the user has played. |
TribufuApi | GetUserGroups | GET /v1/users/{id}/groups | Get a list of groups the user is a member of. |
TribufuApi | GetUserInfo | GET /v1/oauth2/userinfo | Get current user information. |
TribufuApi | GetUserPunishments | GET /v1/users/{id}/punishments | Get a list of punishments the user has received. |
TribufuApi | GetUserServers | GET /v1/users/{id}/servers | Get a list of servers the user is owner of. |
TribufuApi | GetUsers | GET /v1/users | Get a list of user profiles. |
TribufuApi | HashArgon2 | POST /v1/utils/argon2 | Hash a string using argon2. |
TribufuApi | HashBcrypt | POST /v1/utils/bcrypt | Hash a string using bcrypt. |
TribufuApi | HashMd5 | POST /v1/utils/md5 | Hash a string using md5. |
TribufuApi | HashSha256 | POST /v1/utils/sha256 | Hash a string using sha256. |
TribufuApi | IntrospectToken | POST /v1/oauth2/introspect | Introspect a token. |
TribufuApi | Login | POST /v1/login | Login with name or email and password. |
TribufuApi | Logout | POST /v1/logout | Invalidate credentials. |
TribufuApi | Refresh | POST /v1/refresh | Refresh credentials. |
TribufuApi | Register | POST /v1/register | Create a new user. |
TribufuApi | RevokeToken | POST /v1/oauth2/revoke | Revoke a token. |
TribufuApi | Search | POST /v1/search | Advanced search for servers or players. |
TribufuApi | UpdateGameServer | PUT /v1/servers/{id} | Update a game server. |
TribufuApi | UpdateGameServerCluster | PUT /v1/clusters/{id} | Update a game server cluster. |
TribufuApi | UpdateGroup | PUT /v1/groups/{id} | Update a group. |
TribufuApi | UpdateUserProfile | PUT /v1/users/{id}/profile | Update a user profile. |
Documentation for Models
- Model.Account
- Model.Application
- Model.ApplicationType
- Model.AuthorizeRequest
- Model.CodeChallengeMethod
- Model.CryptoViewModel
- Model.Game
- Model.GameServer
- Model.GameServerCluster
- Model.GrantType
- Model.Group
- Model.GroupGame
- Model.GroupMember
- Model.GroupRank
- Model.HashViewModel
- Model.IntrospectRequest
- Model.IpAddress
- Model.LeaderboardItem
- Model.LeaderboardOrder
- Model.LoginProvider
- Model.LoginRequest
- Model.LoginResponse
- Model.Package
- Model.Profile
- Model.ProfileGame
- Model.ProfileGroup
- Model.RefreshRequest
- Model.RegisterRequest
- Model.ResponseType
- Model.RevokeRequest
- Model.SearchRequest
- Model.SearchType
- Model.ServerMetrics
- Model.ServerStatus
- Model.Subscription
- Model.TokenHintType
- Model.TokenRequest
- Model.TokenResponse
- Model.TokenType
- Model.UpdateProfile
- Model.UserInfo
- Model.UserType
Documentation for Authorization
Authentication schemes defined for the API:
ApiKey
- Type: API key
- API key parameter name: Authorization
- Location: HTTP header