Thingsboard.Net.Flurl
3.4.9
See the version list below for details.
dotnet add package Thingsboard.Net.Flurl --version 3.4.9
NuGet\Install-Package Thingsboard.Net.Flurl -Version 3.4.9
<PackageReference Include="Thingsboard.Net.Flurl" Version="3.4.9" />
paket add Thingsboard.Net.Flurl --version 3.4.9
#r "nuget: Thingsboard.Net.Flurl, 3.4.9"
// Install Thingsboard.Net.Flurl as a Cake Addin #addin nuget:?package=Thingsboard.Net.Flurl&version=3.4.9 // Install Thingsboard.Net.Flurl as a Cake Tool #tool nuget:?package=Thingsboard.Net.Flurl&version=3.4.9
Thingsboard.Net
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 | ||
Thingsboard.Net.Flurl | ||
Thingsboard.Net.Flurl.DependencyInjection |
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 | Versions 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. |
-
.NETStandard 2.0
- Flurl.Http (>= 3.2.4)
- Microsoft.Extensions.Logging.Abstractions (>= 6.0.0)
- Polly (>= 7.2.3)
- System.IdentityModel.Tokens.Jwt (>= 6.23.1)
- Thingsboard.Net.Abstractions (>= 3.4.9)
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 |