Thingsboard.Net.Flurl 3.4.21

There is a newer version of this package available.
See the version list below for details.
dotnet add package Thingsboard.Net.Flurl --version 3.4.21                
NuGet\Install-Package Thingsboard.Net.Flurl -Version 3.4.21                
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="Thingsboard.Net.Flurl" Version="3.4.21" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Thingsboard.Net.Flurl --version 3.4.21                
#r "nuget: Thingsboard.Net.Flurl, 3.4.21"                
#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 Thingsboard.Net.Flurl as a Cake Addin
#addin nuget:?package=Thingsboard.Net.Flurl&version=3.4.21

// Install Thingsboard.Net.Flurl as a Cake Tool
#tool nuget:?package=Thingsboard.Net.Flurl&version=3.4.21                

Thingsboard.Net

Build status CodeQL GitHub license

Thingsboard.NET is a .NET client library for Thingsboard IoT Platform. It is a .NET Standard 2.0 library, so it can be used in .NET Core and .NET Framework applications.

All client API are tested in Thingsboard v3.4.x

Nuget packages

Name Version Downloads
Thingsboard.Net.Abstractions nuget stats
Thingsboard.Net.Flurl nuget stats
Thingsboard.Net.Flurl.DependencyInjection nuget stats

Usage

Creating a client and trying to invoke getCurrentUser method:

Basic usage

Install the NuGet package Thingsboard.Net.Flurl.

PM> Install-Package Thingsboard.NET.Flurl

Then put following code into your project

// Initial factory
var factory = new FlurlTbClientFactory
{
    Options = new ThingsboardNetFlurlOptions()
    {
        BaseUrl  = "http://localhost:8080",
        Username = "tenant@thingsboard.org",
        Password = "tenant",
    }
};

// Get the client
var authClient = factory.CreateAuthClient();
var userInfo = await authClient.GetCurrentUserAsync();
Console.WriteLine($"Hello {userInfo.Email}");

You will get the output from console:

Hello tenant@thingsboard.org

Integration to ASP.NET Core

You can use the Thingsboard.NET.Flurl library in ASP.NET Core applications. Te dependency injection mode is supported.

First, add the Thingsboard.NET.Flurl.DependencyInjection library to your project:

PM> Install-Package Thingsboard.NET.Flurl.DependencyInjection

Then, register the Thingsboard.NET.Flurl services in the ConfigureServices method of Startup.cs:

// add package "Thingsboard.Net.Flurl.DependencyInjection" Version="3.4.1.1"
serviceBuilder.AddThingsboardNet(options =>
{
    options.Username = "tenant@thingsboard.org";
    options.Password = "tenant";
    options.BaseUrl  = "http://localhost:8080";
});

Then you can inject the client factory in your controllers:

public class HomeController : Controller
{
    private readonly ITbAuthClient _authClient;

    public HomeController(ITbAuthClient authClient)
    {
        _authClient = authClient;
    }

    public async Task<IActionResult> Index()
    {
        var userInfo = await _authClient.GetCurrentUserAsync();
        return View(userInfo);
    }
}

Customization options

You can customize the client options before invoke RPC methods:

public class HomeController : Controller
{
    private readonly ITbAuthClient _authClient;

    public HomeController(ITbAuthClient authClient)
    {
        _authClient = authClient;
    }

    public async Task<IActionResult> Index()
    {
        var userInfo = await auth
            .WithCredentials("newuser@thingsboard.com", "your-password")
            .WithBaseUrl("https://tb-server")
            .GetCurrentUserAsync();
        return View(userInfo);
    }
}

Thanks

  • Thanks to Flurl for the great HTTP library.
  • Thanks to Thingsboard for the great IoT platform.
  • Thanks to Polly for the great resilience and transient-fault-handling library.

Final

Leave a comment on GitHub if you have any questions or suggestions.

Turn on the star if you like this project.

License

This project is licensed under the MIT License

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  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 was computed.  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 was computed.  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 netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Thingsboard.Net.Flurl:

Package Downloads
Thingsboard.Net.Flurl.DependencyInjection

The dotnet restful api client for thingsboard v3.4.x

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.5.1.5 699 10/11/2023
3.5.1.4 291 7/7/2023
3.5.1.2 191 7/7/2023
3.5.1 216 7/7/2023
3.4.33 454 3/22/2023
3.4.32 333 3/14/2023
3.4.31 388 3/13/2023
3.4.30 345 3/7/2023
3.4.29 345 3/7/2023
3.4.28 319 3/7/2023
3.4.27 325 3/7/2023
3.4.26 353 3/7/2023
3.4.25 359 3/6/2023
3.4.24 334 3/6/2023
3.4.23 352 3/3/2023
3.4.22 360 3/3/2023
3.4.21 355 3/3/2023
3.4.20 378 2/27/2023
3.4.19 411 2/6/2023
3.4.18 525 1/4/2023
3.4.17 447 1/4/2023
3.4.16 544 11/22/2022
3.4.15 548 11/15/2022
3.4.14 551 11/14/2022
3.4.13 568 11/10/2022
3.4.12 533 11/10/2022
3.4.11 653 10/28/2022
3.4.10 654 10/22/2022
3.4.9 644 10/22/2022
3.4.8 656 10/22/2022
3.4.7 677 10/21/2022
3.4.6 634 10/21/2022
3.4.5 691 10/20/2022
3.4.3 645 10/18/2022
3.4.1.9 987 10/18/2022
3.4.1.7 369 10/18/2022
3.4.1.6 383 10/18/2022
3.4.1.5 400 10/17/2022
3.4.1.4 683 10/17/2022
3.4.1.3 385 10/17/2022
3.4.1.2 398 10/17/2022
3.4.1.1 666 10/17/2022