microsoftgraph / microsoftgraph/msgraph-metadata
Missing paths for OpenAPI generation
Nobody has claimed this yet.
- Dominant language
- XSLT
- Stars
- 166
- Forks
- 55
- Avg merge
- 16h 12m
- Merged PRs (30d)
- 14
Description
Describe the bug
This is potentially related to the issue described above.
When generating the OpenAPI description for Microsoft Graph Beta the building, desk, floor, room, roomlist, section, workspace routes are not generated for those entitytypes. All are derived type of the abstract place type.
<EntitySet Name="places" EntityType="microsoft.graph.place" />
<EntityType Name="place" BaseType="graph.entity" Abstract="true">
....
<NavigationProperty Name="checkIns" Type="Collection(graph.checkInClaim)" ContainsTarget="true" />
</EntityType>
<EntityType Name="building" BaseType="graph.place">
...
<NavigationProperty Name="map" Type="graph.buildingMap" ContainsTarget="true" />
</EntityType>
<EntityType Name="room" BaseType="graph.place">
...
</EntityType>
<EntityType Name="roomList" BaseType="graph.place">
...
<NavigationProperty Name="rooms" Type="Collection(graph.room)" ContainsTarget="true" />
<NavigationProperty Name="workspaces" Type="Collection(graph.workspace)" ContainsTarget="true" />
</EntityType>
<Function Name="descendants" IsBound="true" IsComposable="true">
<Parameter Name="bindingParameter" Type="graph.place" />
<ReturnType Type="Collection(graph.place)" Nullable="false" />
</Function>
Sample of places paths currently supported in our OpenAPI:
/places/{place-id}
/places/{place-id}/checkIns
/places/{place-id}/checkIns/$count
/places/{place-id}/descendants()
/places/{place-id}/graph.room
/places/{place-id}/graph.room/checkIns
/places/{place-id}/graph.room/checkIns/$count
/places/{place-id}/graph.roomList
/places/{place-id}/graph.roomList/checkIns
/places/{place-id}/graph.roomList/rooms
Either we don't currently support this behavior or there are missing annotations used to specify this behavior. This requires investigation.
Expected behavior
Paths that we expect to be in our OpenAPI but are not (same as the list of affected EntityTypes above):
/places/microsoft.graph.building
/places/microsoft.graph.floor
/places/microsoft.graph.desk
/places/room
/places/roomlist
/places/section
/places/workspace
Additional context
https://github.com/microsoftgraph/msgraph-metadata/blob/master/openapi/beta/openapi.yaml to see missing paths.
https://learn.microsoft.com/en-us/graph/api/place-list?view=graph-rest-beta&tabs=http
https://github.com/microsoft/OpenAPI.NET.OData/issues/720
https://github.com/microsoftgraph/msgraph-metadata/pull/850
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by inspecting the generated paths in openapi/beta/openapi.yaml and compare them with the place entity definitions and expected routes listed in the issue. Review the related OpenAPI.NET.OData issue 720 and metadata pull request 850 for prior investigation. Done means determining whether annotations or generator behavior are responsible and documenting or implementing the missing paths.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- openapi
- Domain
- api, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100