Add Grpc ProtoBuf support (request-response) (#1047)

* ProtoBuf

* .

* x

* ---

* x

* fx

* ...

* sc

* ...

* .

* groen

* x

* fix tests

* ok!?

* fix tests

* fix tests

* !

* x

* 6

* .

* x

* ivaluematcher

* transformer

* .

* sc

* .

* mapping

* x

* tra

* com

* ...

* .

* .

* .

* AddProtoDefinition

* .

* set

* grpahj

* .

* .

* IdOrText

* ...

* async

* async2

* .

* t

* nuget

* <PackageReference Include="ProtoBufJsonConverter" Version="0.2.0-preview-04" />

* http version

* tests

* .WithHttpVersion("2")

* <PackageReference Include="ProtoBufJsonConverter" Version="0.2.0" />

* HttpVersionParser
This commit is contained in:
Stef Heyenrath
2024-02-16 17:16:51 +01:00
committed by GitHub
parent 801546fae7
commit 6ac95cf57d
129 changed files with 4585 additions and 1556 deletions

View File

@@ -92,17 +92,14 @@ internal class Transformer : ITransformer
responseMessage.FaultPercentage = original.FaultPercentage;
responseMessage.Headers = TransformHeaders(transformerContext, model, original.Headers);
responseMessage.TrailingHeaders = TransformHeaders(transformerContext, model, original.TrailingHeaders);
switch (original.StatusCode)
responseMessage.StatusCode = original.StatusCode switch
{
case int statusCodeAsInteger:
responseMessage.StatusCode = statusCodeAsInteger;
break;
case string statusCodeAsString:
responseMessage.StatusCode = transformerContext.ParseAndRender(statusCodeAsString, model);
break;
}
int statusCodeAsInteger => statusCodeAsInteger,
string statusCodeAsString => transformerContext.ParseAndRender(statusCodeAsString, model),
_ => responseMessage.StatusCode
};
return responseMessage;
}
@@ -123,13 +120,13 @@ internal class Transformer : ITransformer
switch (original.DetectedBodyType)
{
case BodyType.Json:
case BodyType.ProtoBuf:
return TransformBodyAsJson(transformerContext, options, model, original);
case BodyType.File:
return TransformBodyAsFile(transformerContext, model, original, useTransformerForBodyAsFile);
case BodyType.String:
case BodyType.FormUrlEncoded:
case BodyType.String or BodyType.FormUrlEncoded:
return TransformBodyAsString(transformerContext, model, original);
default:
@@ -191,6 +188,8 @@ internal class Transformer : ITransformer
Encoding = original.Encoding,
DetectedBodyType = original.DetectedBodyType,
DetectedBodyTypeFromContentType = original.DetectedBodyTypeFromContentType,
ProtoDefinition = original.ProtoDefinition,
ProtoBufMessageType = original.ProtoBufMessageType,
BodyAsJson = jToken
};
}