microsoftgraph / microsoftgraph/msgraph-sdk-java

The Api response not match with sdk response.

Offen
#2,417 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Java
Sterne
444
Forks
154
Ø Merge
18 Std. 28 Min.
Gemergte PRs (30 T.)
4

Beschreibung

Issue: Null Values Not Being Deserialized for Microsoft Graph API Responses via Java SDK

Description:

I am encountering an unexpected behavior when using the Microsoft Graph Java SDK to retrieve user data. Specifically, properties with null values in the API response are not being included in the deserialized object when using the SDK, while they are present when making a direct API call.

Detailed Scenario:

  1. Direct API Call (e.g., Postman):
    When I make a direct GET request to the Microsoft Graph API (e.g., https://graph.microsoft.com/v1.0/me) using a tool like Postman, the JSON response includes all properties, even those with null values. For example, a response might contain:

    {
      "displayName": "John Doe",
      "jobTitle": null,
      "mobilePhone": "123-456-7890",
      "officeLocation": null,
      // ... other properties
    }
    

    In this example, jobTitle and officeLocation are explicitly present with null values.

  2. Using Microsoft Graph Java SDK:
    I am using the microsoft-graph SDK (version 6.19.0) and have initialized a GraphServiceClient. When I perform a similar operation to retrieve user data (e.g., graphServiceClient.me().buildRequest().get()), and then attempt to access the deserialized User object, properties that had null values in the raw API response are seemingly filtered out or omitted during the deserialization process.

    After retrieving the User object and attempting to access its members, or after performing serialization of this SDK-generated object (especially when dealing with the Kiota-generated models and potentially abstracting the BackingStore layer), only the keys with non-null values are present. The properties that were null in the original API response are entirely absent from the deserialized User object's fields or when re-serializing the object.

Expected Behavior:

I expect the Microsoft Graph Java SDK's deserialization process to faithfully represent the entire API response, including properties that have null values. These null properties should be present in the deserialized User object, allowing me to differentiate between a property that is genuinely absent from the response and one that is explicitly present but with a null value.

Question/Request:

Is there any configuration or setting available within the Microsoft Graph Java SDK (or the underlying Kiota libraries) that allows for the deserialization of properties with null values, ensuring they are retained in the resulting Java objects? My goal is to prevent the implicit filtering of these null-valued keys.

SDK Version: :

  • microsoft-graph version: [6.19.0]
  • Java Version: [24.0.1]

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginnen Sie damit, das Verhalten von GraphServiceClient.me().buildRequest().get() mit microsoft-graph 6.19.0 zu reproduzieren, indem Sie die direkte Microsoft Graph-Antwort mit dem deserialisierten User-Objekt und seiner erneut serialisierten Form vergleichen. Untersuchen Sie anschließend das von Kiota generierte Modell und das Verhalten von BackingStore, um festzustellen, ob explizite Null-Eigenschaften von nicht vorhandenen Eigenschaften unterschieden werden können. Als abgeschlossen gilt die Aufgabe, wenn die verfügbare Konfiguration dokumentiert oder bestätigt wurde, dass das SDK diese Unterscheidung nicht beibehält.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
api
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.