Skip to content

Commit 09e9ed7

Browse files
authored
Include verb in gRPC JSON transcoding swagger path (#47165)
1 parent 9b3e79d commit 09e9ed7

File tree

3 files changed

+40
-0
lines changed

3 files changed

+40
-0
lines changed

src/Grpc/JsonTranscoding/src/Microsoft.AspNetCore.Grpc.Swagger/Internal/GrpcJsonTranscodingDescriptionProvider.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,11 @@ private static string ResolvePath(HttpRoutePattern httpRoutePattern, Dictionary<
182182
sb.Append(httpRoutePattern.Segments[i]);
183183
}
184184
}
185+
if (httpRoutePattern.Verb != null)
186+
{
187+
sb.Append(':');
188+
sb.Append(httpRoutePattern.Verb);
189+
}
185190
return sb.ToString();
186191
}
187192

src/Grpc/JsonTranscoding/test/Microsoft.AspNetCore.Grpc.Swagger.Tests/Parameters/ParametersTests.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,4 +160,27 @@ public void KnownTypes_AllQueryFields()
160160
Assert.Equal("integer", operation.Parameters[2].Schema.Type);
161161
Assert.Equal("int32", operation.Parameters[2].Schema.Format);
162162
}
163+
164+
[Fact]
165+
public void Verb()
166+
{
167+
// Arrange & Act
168+
var swagger = OpenApiTestHelpers.GetOpenApiDocument<ParametersService>(_testOutputHelper);
169+
170+
// Assert
171+
var path1 = swagger.Paths["/v1/parameters10/{parameterInt}:one"];
172+
AssertParams(path1);
173+
var path2 = swagger.Paths["/v1/parameters10/{parameterInt}:two"];
174+
AssertParams(path2);
175+
176+
static void AssertParams(OpenApiPathItem path)
177+
{
178+
Assert.True(path.Operations.TryGetValue(OperationType.Get, out var operation));
179+
Assert.Equal(2, operation.Parameters.Count);
180+
Assert.Equal(ParameterLocation.Path, operation.Parameters[0].In);
181+
Assert.Equal("parameterInt", operation.Parameters[0].Name);
182+
Assert.Equal(ParameterLocation.Query, operation.Parameters[1].In);
183+
Assert.Equal("parameterString", operation.Parameters[1].Name);
184+
}
185+
}
163186
}

src/Grpc/JsonTranscoding/test/Microsoft.AspNetCore.Grpc.Swagger.Tests/Proto/parameters.proto

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,18 @@ service Parameters {
7777
get: "/v1/parameters9"
7878
};
7979
}
80+
81+
rpc DemoParametersTenOne (RequestOne) returns (ParamResponse) {
82+
option (google.api.http) = {
83+
get: "/v1/parameters10/{parameter_int}:one"
84+
};
85+
}
86+
87+
rpc DemoParametersTenTwo (RequestOne) returns (ParamResponse) {
88+
option (google.api.http) = {
89+
get: "/v1/parameters10/{parameter_int}:two"
90+
};
91+
}
8092
}
8193

8294
message RequestOne {

0 commit comments

Comments
 (0)