diff --git a/src/Microsoft.OpenApi.OData.Reader/Microsoft.OpenAPI.OData.Reader.csproj b/src/Microsoft.OpenApi.OData.Reader/Microsoft.OpenAPI.OData.Reader.csproj
index 77cbd55a..f87c2c29 100644
--- a/src/Microsoft.OpenApi.OData.Reader/Microsoft.OpenAPI.OData.Reader.csproj
+++ b/src/Microsoft.OpenApi.OData.Reader/Microsoft.OpenAPI.OData.Reader.csproj
@@ -15,7 +15,7 @@
net8.0
Microsoft.OpenApi.OData
true
- 2.0.0-preview.6
+ 2.0.0-preview.7
This package contains the codes you need to convert OData CSDL to Open API Document of Model.
© Microsoft Corporation. All rights reserved.
Microsoft OpenApi OData EDM
@@ -32,6 +32,7 @@
- Replaced integer types by number types
- Further fix for generating unique operation ids for paths with composable overloaded functions where all functions in path are overloaded #594
- Further fix for generating unique operation ids for navigation property paths with composable overloaded functions #596
+ - Updates PUT operation id prefix from Update to Set #600
Microsoft.OpenApi.OData.Reader
..\..\tool\Microsoft.OpenApi.OData.snk
diff --git a/src/Microsoft.OpenApi.OData.Reader/Operation/ComplexPropertyUpdateOperationHandler.cs b/src/Microsoft.OpenApi.OData.Reader/Operation/ComplexPropertyUpdateOperationHandler.cs
index e9a40921..cb9e616f 100644
--- a/src/Microsoft.OpenApi.OData.Reader/Operation/ComplexPropertyUpdateOperationHandler.cs
+++ b/src/Microsoft.OpenApi.OData.Reader/Operation/ComplexPropertyUpdateOperationHandler.cs
@@ -39,8 +39,9 @@ protected override void SetBasicInfo(OpenApiOperation operation)
// OperationId
if (Context.Settings.EnableOperationId)
- {
- operation.OperationId = EdmModelHelper.GenerateComplexPropertyPathOperationId(Path, Context, "Update");
+ {
+ string prefix = OperationType == OperationType.Patch ? "Update" : "Set";
+ operation.OperationId = EdmModelHelper.GenerateComplexPropertyPathOperationId(Path, Context, prefix);
}
}
diff --git a/src/Microsoft.OpenApi.OData.Reader/Operation/EntityUpdateOperationHandler.cs b/src/Microsoft.OpenApi.OData.Reader/Operation/EntityUpdateOperationHandler.cs
index eb317b3f..3595b30b 100644
--- a/src/Microsoft.OpenApi.OData.Reader/Operation/EntityUpdateOperationHandler.cs
+++ b/src/Microsoft.OpenApi.OData.Reader/Operation/EntityUpdateOperationHandler.cs
@@ -50,7 +50,8 @@ protected override void SetBasicInfo(OpenApiOperation operation)
if (Context.Settings.EnableOperationId)
{
string typeName = entityType.Name;
- string operationName = $"Update{ Utils.UpperFirstChar(typeName)}";
+ string prefix = OperationType == OperationType.Patch ? "Update" : "Set";
+ string operationName = $"{prefix}{ Utils.UpperFirstChar(typeName)}";
if (keySegment.IsAlternateKey)
{
string alternateKeyName = string.Join("", keySegment.Identifier.Split(',').Select(static x => Utils.UpperFirstChar(x)));
diff --git a/src/Microsoft.OpenApi.OData.Reader/Operation/NavigationPropertyUpdateOperationHandler.cs b/src/Microsoft.OpenApi.OData.Reader/Operation/NavigationPropertyUpdateOperationHandler.cs
index 0ae4b500..35a47c93 100644
--- a/src/Microsoft.OpenApi.OData.Reader/Operation/NavigationPropertyUpdateOperationHandler.cs
+++ b/src/Microsoft.OpenApi.OData.Reader/Operation/NavigationPropertyUpdateOperationHandler.cs
@@ -41,7 +41,7 @@ protected override void SetBasicInfo(OpenApiOperation operation)
// OperationId
if (Context.Settings.EnableOperationId)
{
- string prefix = "Update";
+ string prefix = OperationType == OperationType.Patch ? "Update" : "Set";
operation.OperationId = GetOperationId(prefix);
}
diff --git a/test/Microsoft.OpenAPI.OData.Reader.Tests/Operation/ComplexPropertyPutOperationHandlerTests.cs b/test/Microsoft.OpenAPI.OData.Reader.Tests/Operation/ComplexPropertyPutOperationHandlerTests.cs
index e7c317ec..bde8ab37 100644
--- a/test/Microsoft.OpenAPI.OData.Reader.Tests/Operation/ComplexPropertyPutOperationHandlerTests.cs
+++ b/test/Microsoft.OpenAPI.OData.Reader.Tests/Operation/ComplexPropertyPutOperationHandlerTests.cs
@@ -61,7 +61,7 @@ public void CreateComplexPropertyPutOperationReturnsCorrectOperationForSingle(bo
if (enableOperationId)
{
- Assert.Equal("Customers.UpdateBillingAddress", put.OperationId);
+ Assert.Equal("Customers.SetBillingAddress", put.OperationId);
}
else
{
@@ -108,7 +108,7 @@ public void CreateComplexPropertyPutOperationReturnsCorrectOperationForCollectio
if (enableOperationId)
{
- Assert.Equal("Customers.UpdateAlternativeAddresses", put.OperationId);
+ Assert.Equal("Customers.SetAlternativeAddresses", put.OperationId);
}
else
{
diff --git a/test/Microsoft.OpenAPI.OData.Reader.Tests/Operation/EntityPutOperationHandlerTests.cs b/test/Microsoft.OpenAPI.OData.Reader.Tests/Operation/EntityPutOperationHandlerTests.cs
index b3b67740..96634cd4 100644
--- a/test/Microsoft.OpenAPI.OData.Reader.Tests/Operation/EntityPutOperationHandlerTests.cs
+++ b/test/Microsoft.OpenAPI.OData.Reader.Tests/Operation/EntityPutOperationHandlerTests.cs
@@ -66,7 +66,7 @@ public void CreateEntityPutOperationReturnsCorrectOperation(bool enableOperation
if (enableOperationId)
{
- Assert.Equal("Customers.Customer.UpdateCustomer", putOperation.OperationId);
+ Assert.Equal("Customers.Customer.SetCustomer", putOperation.OperationId);
}
else
{
diff --git a/test/Microsoft.OpenAPI.OData.Reader.Tests/Operation/NavigationPropertyPutOperationHandlerTests.cs b/test/Microsoft.OpenAPI.OData.Reader.Tests/Operation/NavigationPropertyPutOperationHandlerTests.cs
index 4f23fc41..91f1763a 100644
--- a/test/Microsoft.OpenAPI.OData.Reader.Tests/Operation/NavigationPropertyPutOperationHandlerTests.cs
+++ b/test/Microsoft.OpenAPI.OData.Reader.Tests/Operation/NavigationPropertyPutOperationHandlerTests.cs
@@ -71,7 +71,7 @@ public void CreateNavigationPutOperationReturnsCorrectOperation(bool enableOpera
if (enableOperationId)
{
- Assert.Equal("People.UpdateBestFriend", operation.OperationId);
+ Assert.Equal("People.SetBestFriend", operation.OperationId);
}
else
{
diff --git a/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.V2.json b/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.V2.json
index 66b473dd..2d2dfadb 100644
--- a/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.V2.json
+++ b/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.V2.json
@@ -165,7 +165,7 @@
"Airlines.Airline"
],
"summary": "Update entity in Airlines",
- "operationId": "Airlines.Airline.UpdateAirline",
+ "operationId": "Airlines.Airline.SetAirline",
"consumes": [
"application/json"
],
@@ -534,7 +534,7 @@
"Airports.AirportLocation"
],
"summary": "Update property Location value.",
- "operationId": "Airports.UpdateLocation",
+ "operationId": "Airports.SetLocation",
"consumes": [
"application/json"
],
diff --git a/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.V2.yaml b/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.V2.yaml
index cdfc23d3..a725e263 100644
--- a/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.V2.yaml
+++ b/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.V2.yaml
@@ -107,7 +107,7 @@ paths:
tags:
- Airlines.Airline
summary: Update entity in Airlines
- operationId: Airlines.Airline.UpdateAirline
+ operationId: Airlines.Airline.SetAirline
consumes:
- application/json
parameters:
@@ -349,7 +349,7 @@ paths:
tags:
- Airports.AirportLocation
summary: Update property Location value.
- operationId: Airports.UpdateLocation
+ operationId: Airports.SetLocation
consumes:
- application/json
parameters:
diff --git a/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.json b/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.json
index ca9d60f8..6e7c19f9 100644
--- a/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.json
+++ b/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.json
@@ -192,7 +192,7 @@
"Airlines.Airline"
],
"summary": "Update entity in Airlines",
- "operationId": "Airlines.Airline.UpdateAirline",
+ "operationId": "Airlines.Airline.SetAirline",
"parameters": [
{
"name": "AirlineCode",
@@ -609,7 +609,7 @@
"Airports.AirportLocation"
],
"summary": "Update property Location value.",
- "operationId": "Airports.UpdateLocation",
+ "operationId": "Airports.SetLocation",
"parameters": [
{
"name": "IcaoCode",
diff --git a/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.yaml b/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.yaml
index 9be2c24c..968aec79 100644
--- a/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.yaml
+++ b/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.yaml
@@ -125,7 +125,7 @@ paths:
tags:
- Airlines.Airline
summary: Update entity in Airlines
- operationId: Airlines.Airline.UpdateAirline
+ operationId: Airlines.Airline.SetAirline
parameters:
- name: AirlineCode
in: path
@@ -398,7 +398,7 @@ paths:
tags:
- Airports.AirportLocation
summary: Update property Location value.
- operationId: Airports.UpdateLocation
+ operationId: Airports.SetLocation
parameters:
- name: IcaoCode
in: path