Releases: influxdata/influxdb-client-csharp
4.8.0
InfluxDBClientFactory
:
using var client = new InfluxDBClient("http://localhost:8086", "my-token");
Features
- #388: Initialize C# client without
InfluxDBClientFactory
Bug Fixes
- #426: Parsing HTTP headers with duplicated name
CI
- #416: Add build for
.NET 7.0
Dependencies
Update dependencies:
Build:
- #418:
RestSharp
to108.0.3
- #423:
Newtonsoft.Json
to13.0.2
- #405:
NodaTime.Serialization.JsonNet
to3.0.1
- #413:
CsvHelper
to30.0.1
Examples:
- #424:
Radzen.Blazor
to4.3.8
Test:
4.7.0
Features
- #376: Add
FluxRecord.Row
which stores response data in a list - #404: Expose
FluxCsvParser
asAnnotatedCsvParser
Dependencies
Update dependencies:
Build:
- #397:
CsvHelper
to30.0.0
- #384:
Microsoft.Extensions.ObjectPool
to6.0.10
- #402:
NodaTime
to3.1.5
- #392:
JsonSubTypes
to2.0.1
Examples:
- #401:
Radzen.Blazor
to4.1.15
Test:
4.6.0
Bug Fixes
- #353: Support for
double
types in LINQ expression [LINQ] - #360: Designated
HealthAsync
as obsolete inIInfluxDBClient
Others
- #368: Use builtin support for synchronous HTTP requests from
RestSharp
Documentation
- #355: Add an example how to use
EventHandler
forWriteApi
Dependencies
Update dependencies:
Build:
- #364:
System.Configuration.ConfigurationManager
to6.0.1
- #365:
Microsoft.Extensions.ObjectPool
to6.0.9
- #368:
RestSharp
to108.0.2
- #371:
NodaTime
to3.1.3
Examples:
- #375:
Radzen.Blazor
to4.1.4
Test:
4.5.0
4.4.0
4.3.0
Features
- #327: Add interfaces to client's APIs
Bug Fixes
- #329: Writing data to multiple destination by the background writer
Dependencies
- #326: Update dependencies:
Build:
- RestSharp to 108.0.1
- NodaTime to 3.1.0
- JsonSubTypes to 1.9.0
- Microsoft.Extensions.ObjectPool to 6.0.5
Test:
- Microsoft.NET.Test.Sdk to 17.2.0
- NUnit to 3.13.3
- WireMock.Net to 1.4.43
- Moq to 4.18.1
- Tomlyn.Signed to 0.14.3
4.2.0
Features
- #319: Optionally align
limit()
andtail()
beforepivot()
function [LINQ] - #322: Possibility to specify default value for
start
andstop
parameter of range function [LINQ] - #323: Add callback function for handling the SSL Certificate Validation
Breaking Changes
- #316: Rename
InvocableScripts
toInvokableScripts
Bug Fixes
- #313: Using default
org
andbucket
inWriteApiAsync
- #317: Decompress Gzipped data
- #317: Logging HTTP headers from streaming request
Documentation
4.1.0
4.0.0
RestSharp
library was updated the latest major version v107
. The new version of RestSharp
switched from the legacy HttpWebRequest
class to the standard well-known System.Net.Http.HttpClient
instead. This improves performance and solves lots of issues, like hanging connections, updated protocols support, and many other problems.
Migration Notice
- New versions of
QueryApi
,QueryApiSync
,WriteApi
,WriteApiAsync
andFluxClient
methods uses default named argument values so you are able to easily migrate by:
- _client.GetQueryApi().QueryAsyncEnumerable<T>(fluxQuery, token);
+ _client.GetQueryApi().QueryAsyncEnumerable<T>(fluxQuery, cancellationToken: token);
Breaking Changes
API
-
The Client no longer supports the
ReadWriteTimeout
for HTTP Client. This settings is not supported by theHttpClient
. Use can useTimeout
property instead. -
The
FluxClient
usesIDisposable
interface to releasing underlying HTTP connections:From
var client = FluxClientFactory.Create("http://localhost:8086/");
To
using var client = FluxClientFactory.Create("http://localhost:8086/");
-
The Query APIs uses
CancellationToken
instead ofICancellable
:From
await QueryApi.QueryAsync(flux, (cancellable, record) => { // process record Console.WriteLine($"record: {record}"); if (your_condition) { // cancel stream source.Cancel(); } })
To
var source = new CancellationTokenSource(); await QueryApi.QueryAsync(flux, record => { // process record Console.WriteLine($"record: {record}"); if (your_condition) { // cancel stream source.Cancel(); } }, source.Token);
-
QueryApi
has changed method signatures:3.3.0 4.0.0 QueryAsync(String)
QueryAsync(String, String?, CancellationToken?)
QueryAsync(String, String)
QueryAsync(String, String?, CancellationToken?)
QueryAsync(Query)
QueryAsync(Query, String?, CancellationToken?)
QueryAsync(Query, String)
QueryAsync(Query, String?, CancellationToken?)
QueryAsync(String, Type)
QueryAsync(String, Type, String?, CancellationToken?)
QueryAsync(String, String, Type)
QueryAsync(String, Type, String?, CancellationToken?)
QueryAsync(Query, Type)
QueryAsync(Query, Type, String?, CancellationToken?)
QueryAsync(Query, String, Type)
QueryAsync(Query, Type, String?, CancellationToken?)
QueryAsync(String, Action<ICancellable, FluxRecord>)
QueryAsync(String, Action<FluxRecord>, Action<Exception>?, Action?, String?, CancellationToken?)
QueryAsync(String, Action<ICancellable, FluxRecord>, Action<Exception>)
QueryAsync(String, Action<FluxRecord>, Action<Exception>?, Action?, String?, CancellationToken?)
QueryAsync(String, Action<ICancellable, FluxRecord>, Action<Exception>, Action)
QueryAsync(String, Action<FluxRecord>, Action<Exception>?, Action?, String?, CancellationToken?)
QueryAsync(String, String, Action<ICancellable, FluxRecord>)
QueryAsync(String, Action<FluxRecord>, Action<Exception>?, Action?, String?, CancellationToken?)
QueryAsync(String, String, Action<ICancellable, FluxRecord>, Action<Exception>)
QueryAsync(String, Action<FluxRecord>, Action<Exception>?, Action?, String?, CancellationToken?)
QueryAsync(String, String, Action<ICancellable, FluxRecord>, Action<Exception>, Action)
QueryAsync(String, Action<FluxRecord>, Action<Exception>?, Action?, String?, CancellationToken?)
QueryAsync(Query, Action<ICancellable, FluxRecord>)
QueryAsync(Query, Action<FluxRecord>, Action<Exception>?, Action?, String?, CancellationToken?)
QueryAsync(Query, Action<ICancellable, FluxRecord>, Action<Exception>)
QueryAsync(Query, Action<FluxRecord>, Action<Exception>?, Action?, String?, CancellationToken?)
QueryAsync(Query, Action<ICancellable, FluxRecord>, Action<Exception>, Action)
QueryAsync(Query, Action<FluxRecord>, Action<Exception>?, Action?, String?, CancellationToken?)
QueryAsync(Query, String, Action<ICancellable, FluxRecord>)
QueryAsync(Query, Action<FluxRecord>, Action<Exception>?, Action?, String?, CancellationToken?)
QueryAsync(Query, String, Action<ICancellable, FluxRecord>, Action<Exception>)
QueryAsync(Query, Action<FluxRecord>, Action<Exception>?, Action?, String?, CancellationToken?)
QueryAsync(Query, String, Action<ICancellable, FluxRecord>, Action<Exception>, Action)
QueryAsync(Query, Action<FluxRecord>, Action<Exception>?, Action?, String?, CancellationToken?)
QueryAsync(String, String, Action<ICancellable, Object>, Action<Exception>, Action, Type)
QueryAsync(String, Type, Action<Object>, Action<Exception>?, Action?, String?, CancellationToken?)
QueryAsync(Query, String, Action<ICancellable, Object>, Action<Exception>, Action, Type)
QueryAsync(Query, Type, Action<Object>, Action<Exception>?, Action?, String?, CancellationToken?)
QueryAsync<T>(String)
QueryAsync<T>(String, String?, CancellationToken?)
QueryAsync<T>(String, String)
QueryAsync<T>(String, String?, CancellationToken?)
QueryAsync<T>(String, Action<ICancellable, T>)
QueryAsync<T>(String, Action<T>, Action<Exception>?, Action?, String?, CancellationToken?)
QueryAsync<T>(String, Action<ICancellable, T>, Action<Exception>)
QueryAsync<T>(String, Action<T>, Action<Exception>?, Action?, String?, CancellationToken?)
QueryAsync<T>(String, Action<ICancellable, T>, Action<Exception>, Action)
QueryAsync<T>(String, Action<T>, Action<Exception>?, Action?, String?, CancellationToken?)
QueryAsync<T>(String, String, Action<ICancellable, T>)
QueryAsync<T>(String, Action<T>, Action<Exception>?, Action?, String?, CancellationToken?)
QueryAsync<T>(String, String, Action<ICancellable, T>, Action<Exception>)
QueryAsync<T>(String, Action<T>, Action<Exception>?, Action?, String?, CancellationToken?)
QueryAsync<T>(String, String, Action<ICancellable, T>, Action<Exception>, Action)
QueryAsync<T>(String, Action<T>, Action<Exception>?, Action?, String?, CancellationToken?)
QueryAsync<T>(Query)
QueryAsync<T>(Query, String?, CancellationToken?)
QueryAsync<T>(Query, String)
QueryAsync<T>(Query, String?, CancellationToken?)
QueryAsync<T>(Query, Action<ICancellable, T>)
QueryAsync<T>(Query, Action<T>, Action<Exception>?, Action?, String?, CancellationToken?)
QueryAsync<T>(Query, Action<ICancellable, T>, Action<Exception>)
QueryAsync<T>(Query, Action<T>, Action<Exception>?, Action?, String?, CancellationToken?)
QueryAsync<T>(Query, Action<ICancellable, T>, Action<Exception>, Action)
QueryAsync<T>(Query, Action<T>, Action<Exception>?, Action?, String?, CancellationToken?)
QueryAsync<T>(Query, String, Action<ICancellable, T>)
`QueryAsync(Query, Action, Action?, Action?, Stri...