tomasfabian / ksqlDB.RestApi.Client-DotNet

ksqlDb.RestApi.Client is a C# LINQ-enabled client API for issuing and consuming ksqlDB push and pull queries and executing statements.
MIT License
93 stars 24 forks source link

RowValueJsonSerializer single value deserialization fix #36

Closed tomasfabian closed 1 year ago

tomasfabian commented 1 year ago

RowValueJsonSerializer single value deserialization fix for arrays and primitive types. Fixes #35

Possible usage:

var ksql =
  "SELECT ARRAY[1, 2] as MESSAGE FROM Movies EMIT CHANGES LIMIT 2;";

QueryStreamParameters queryParameters = new QueryStreamParameters
{
  Sql = ksql,
  [QueryParameters.AutoOffsetResetPropertyName] = "earliest",
};

await using var context2 = new KSqlDBContext(@"http:\\localhost:8088");

using var disposable = context.CreateQueryStream<int[]>(queryParameters)
  .ToObservable()
  .Subscribe(onNext: message =>
    {
      Console.WriteLine($"Message: {message}");
    }, onError: error => { Console.WriteLine($"Exception: {error.Message}"); },
    onCompleted: () => Console.WriteLine("Completed"));