GithubHelp home page GithubHelp logo

anthonymedinawork / integrations Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 297 KB

This .NET client library provides a quick & easy option for integrating with Forbury APIs.

License: MIT License

C# 100.00%

integrations's Introduction

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

integrations's People

Contributors

anthonymedinawork avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.