This .NET client library provides a quick & easy option for integrating with Forbury APIs.
Note: In order to use this library, you must be an existing Forbury customer and have an API ClientId
and ClientSecret
.
To learn more about becoming a Forbury customer, or if you already are and would like access, please contact us.
Wiki page - Contains full documentation including examples.
Swagger API documentation - Contains the ability for sample requests and available endpoints.
In order to get started, please follow these steps.
1. Install the NuGet package using one of the following commands
Package Manager
Install-Package Forbury.Integrations -Version 1.7.0
.NET CLI
dotnet add PROJECT package Forbury.Integrations --version 1.7.0
PackageReference
<PackageReference Include="Forbury.Integrations" Version="1.7.0" />
For a full list of the latest releases, please see the package release page.
2. Add the following to your appsettings.config
(replace UNIQUE_CLIENT_NAME
, YOUR_CLIENT_ID
and YOUR_CLIENT_SECRET
).
This library supports a multi-client environment, UNIQUE_CLIENT_NAME
can be any internal reference name you like for accessing the client.
If you only have one client, you will not need to choose which client to make calls with during runtime (please see example below).
"Forbury": {
"Api": {
"Url": "https://api.forbury.com/",
"Version": 1
},
"Authentication": {
"Url": "https://account.forbury.com/",
"Clients": {
"UNIQUE_CLIENT_NAME": {
"ClientId": "YOUR_CLIENT_ID",
"ClientSecret": "YOUR_CLIENT_SECRET"
},
"UNIQUE_CLIENT_NAME": {
"ClientId": "YOUR_CLIENT_ID",
"ClientSecret": "YOUR_CLIENT_SECRET"
}
}
}
}
3. Add the following inside your Startup.cs
(.NET 3.1 and .NET 5).
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddForburyApi(Configuration);
...
}
Alternatively, you are able to create your own configuration object and pass that in as parameter instead.
This gives you the flexibility to build your configuration outside the standard appsettings.json
structure.
public void ConfigureServices(IServiceCollection services)
{
var forburyConfiguration = new ForburyConfiguration()
{
Api = new ApiConfiguration()
{
Url = "https://api.forbury.com/",
Version = 1
},
Authentication = new AuthenticationConfiguration()
{
Url = "https://account.forbury.com/",
Clients = new Dictionary<string, AuthenticationClientConfiguration>()
{
{
"UNIQUE_CLIENT_NAME",
new AuthenticationClientConfiguration()
{
ClientId = "YOUR_CLIENT_ID",
ClientSecret = "YOUR_CLIENT_SECRET"
}
}
}
}
};
services.AddForburyApi(forburyConfiguration);
...
}
Note: If you are using the new .NET 6 design without a Startup.cs
, add the following inside your Program.cs
(.NET 6).
using Forbury.Integrations.API;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddForburyApi(builder.Configuration);
You should now be ready to use the API!
Example usage inside a Service.
Note: Please take note of the using statements, its important to import usings from the correct version (see versions below).
using Forbury.Integrations.API.v1.Dto;
using Forbury.Integrations.API.v1.Interfaces;
...
public class ForburyDataService
{
private readonly IForburyTeamApiClient _forburyTeamApiClient;
public ForburyDataService(IForburyTeamApiClient forburyTeamApiClient)
{
_forburyTeamApiClient = forburyTeamApiClient;
// NOTE: In a multi-client environment, you will need to set the client
_forburyTeamApiClient.SetClient("UNIQUE_CLIENT_NAME");
}
public async Task GetTeams(int amount = 20, int page = 1)
{
PagedResult<TeamDto> teams = await _forburyTeamApiClient.GetTeams(amount, page);
// Do work here
...
}
public async Task GetModelDataForTeam(int id, DateTime? fromDate = null, int amount = 20, int page = 1)
{
PagedResult<ModelDto> models = await _forburyTeamApiClient.GetModelsByTeamId(id, fromDate, null, amount, page);
// Do work here
...
}
}
Currently available API versions:
- v1