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