Forbury.Integrations 1.7.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package Forbury.Integrations --version 1.7.2                
NuGet\Install-Package Forbury.Integrations -Version 1.7.2                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Forbury.Integrations" Version="1.7.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Forbury.Integrations --version 1.7.2                
#r "nuget: Forbury.Integrations, 1.7.2"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Forbury.Integrations as a Cake Addin
#addin nuget:?package=Forbury.Integrations&version=1.7.2

// Install Forbury.Integrations as a Cake Tool
#tool nuget:?package=Forbury.Integrations&version=1.7.2                

Forbury

Forbury Integrations

NuGet Licence GitHub Workflow Status GitHub Workflow Status

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.

Documentation

Wiki page - Contains full documentation including examples.

Swagger API documentation - Contains the ability for sample requests and available endpoints.

Quick Start Guide

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 API Usage

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
        ...
    }
}

Versions

Currently available API versions:

  • v1
Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp3.1 is compatible. 
.NET Framework net48 is compatible.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.7.3 127 11/5/2024
1.7.2 413 7/23/2024
1.7.1 388 1/24/2024
1.7.0 130 1/17/2024
1.6.0 1,945 1/30/2023
1.6.0-beta 142 1/18/2023
1.5.0 401 12/9/2022
1.5.0-beta5 150 12/9/2022
1.5.0-beta4 133 12/7/2022
1.5.0-beta3 236 11/23/2022
1.5.0-beta2 153 11/11/2022
1.5.0-beta 237 11/8/2022
1.4.3 359 12/5/2022
1.4.2 348 12/2/2022
1.4.1 385 10/26/2022
1.4.0 772 9/1/2022
1.3.0 631 8/4/2022
1.2.1 472 7/25/2022
1.2.0 529 7/24/2022
1.1.0 564 7/7/2022
1.0.7 463 6/27/2022
1.0.6 886 4/11/2022
1.0.5 640 3/29/2022
1.0.4 466 1/30/2022
1.0.3 392 7/6/2021
1.0.2 367 6/21/2021
1.0.1 1,996 5/17/2021
1.0.0 354 5/5/2021