microsoftgraph / microsoftgraph/msgraph-metadata

Missing paths for OpenAPI generation

Open
#937 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

ToTriage
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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.