-
Notifications
You must be signed in to change notification settings - Fork 65
Closed
Labels
priority:p1High priority but not blocking. Causes major but not critical loss of functionality SLA <=7daysHigh priority but not blocking. Causes major but not critical loss of functionality SLA <=7daystype:bugA broken experienceA broken experience
Milestone
Description
OData cast paths that call /$count have multiple verbs in their OperationIds. This leads to naming inconsistencies when generating SDKs based on OperationIds. For example:
'/servicePrincipals/{servicePrincipal-id}/transitiveMemberOf/graph.administrativeUnit/$count':
get:
operationId: servicePrincipals.ListTransitiveMemberOf.GetCount.AsAdministrativeUnit-4450 # List and Get are present.
parameters:
- name: ConsistencyLevel
in: header
responses:
2XX:
$ref: '#/components/responses/ODataCountResponse'vs
'/servicePrincipals/{servicePrincipal-id}/transitiveMemberOf/$count':
get:
operationId: servicePrincipals.transitiveMemberOf.GetCount-4794 # Only Get is present
parameters:
- name: ConsistencyLevel
in: header
responses:
2XX:
$ref: '#/components/responses/ODataCountResponse'Assemblies affected
Microsoft.OpenApi.OData v1.4.0
Steps to reproduce
Inspect converted OpenAPI document at https://github.com/microsoftgraph/msgraph-metadata/tree/master/openapi/v1.0.
Expected result
'/servicePrincipals/{servicePrincipal-id}/transitiveMemberOf/graph.administrativeUnit/$count':
get:
operationId: servicePrincipals.TransitiveMemberOf.GetCount.AsAdministrativeUnit-4450 # Only Get should be present.
parameters:
- name: ConsistencyLevel
in: header
responses:
2XX:
$ref: '#/components/responses/ODataCountResponse'Additional Notes:
OpenAPI.NET.OData/src/Microsoft.OpenApi.OData.Reader/Operation/DollarCountGetOperationHandler.cs
Line 137 in a47b9d6
| operation.OperationId = $"{EdmModelHelper.GenerateODataTypeCastPathOperationIdPrefix(Path)}.GetCount.As{Utils.UpperFirstChar(targetStructuredType.Name)}-{Path.GetPathHash(Context.Settings)}"; |
Metadata
Metadata
Assignees
Labels
priority:p1High priority but not blocking. Causes major but not critical loss of functionality SLA <=7daysHigh priority but not blocking. Causes major but not critical loss of functionality SLA <=7daystype:bugA broken experienceA broken experience