microsoftgraph / microsoftgraph/msgraph-sdk-python

microsoft.graph.onPremisesPublishing wrong serialization

Offen
#1,542 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

status:waiting-for-triage type:bug
Vorherrschende Sprache
Python
Sterne
630
Forks
96
Ø Merge
15 Std. 20 Min.
Gemergte PRs (30 T.)
3

Beschreibung

Describe the bug

Same bug as in the PHP SDK from 2025

https://github.com/microsoftgraph/msgraph-beta-sdk-php/issues/356


from msgraph_beta import GraphServiceClient as BetaClient
from msgraph_beta.generated.models.application import Application as Application
from msgraph_beta.generated.models.on_premises_publishing import OnPremisesPublishing
from msgraph_beta.generated.models.external_authentication_type import ExternalAuthenticationType

request_body = Application(
    on_premises_publishing = OnPremisesPublishing(
        external_authentication_type=ExternalAuthenticationType.Passthru,
        internal_url="http://localhost:65001",
        external_url="https://whatever",
        is_http_only_cookie_enabled=False,
        is_on_prem_publishing_enabled=True,
        is_persistent_cookie_enabled=False,
        is_secure_cookie_enabled=False,
        is_state_session_enabled=False,
        is_translate_host_header_enabled=False,
        is_translate_links_in_body_enabled=False,
        is_backend_certificate_validation_enabled=False
    ),
)

from kiota_serialization_json.json_serialization_writer import JsonSerializationWriter
writer = JsonSerializationWriter()
request_body.serialize(writer)
print(writer.get_serialized_content().decode('utf-8'))

Output:

{"@odata.type": "#microsoft.graph.application", "onPremisesPublishing": {"externalAuthenticationType": "passthru", "externalUrl": "https://whatever", "internalUrl": "http://localhost:65001", "isBackendCertificateValidationEnabled": false, "isHttpOnlyCookieEnabled": false, "isOnPremPublishingEnabled": true, "isPersistentCookieEnabled": false, "isSecureCookieEnabled": false, "isStateSessionEnabled": false, "isTranslateHostHeaderEnabled": false, "isTranslateLinksInBodyEnabled": false}}

await beta_client.applications.by_application_id(app.application.id).patch(request_body) then fails with

        APIError
        Code: 400
        message: None
        error: MainError(additional_data={}, code='InvalidJson_BadRequest', details=None, inner_error=InnerError(additional_data={}, client_request_id='xxxx', date=datetime.datetime(2026, 7, 10, 8, 49, 27), odata_type=None, request_id='xxxx'), message='Valid JSON content expected.', target=None)
Expected behavior

proper error message and properly serialized data sent to the backend

How to reproduce

see above

SDK Version

1.59.0

Latest version known to work for scenario above?

No response

Known Workarounds

        request_body = BetaApplication(
            additional_data = {
                "microsoft.graph.onPremisesPublishing": {
                    "@odata.type": "#microsoft.graph.onPremisesPublishing",
                    "externalAuthenticationType": "passthru",
                    "internalUrl": "http://localhost:65001",
                    "externalUrl": EXTERNAL_URL,
                    "isHttpOnlyCookieEnabled": False,
                    "isOnPremPublishingEnabled": True,
                    "isPersistentCookieEnabled": False,
                    "isSecureCookieEnabled": False,
                    "isStateSessionEnabled": False,
                    "isTranslateHostHeaderEnabled": False,
                    "isTranslateLinksInBodyEnabled": False,
                    "isBackendCertificateValidationEnabled": False
                }
            }
        )
Debug output

No response

Configuration

No response

Other information

No response

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

Beginne mit den generierten Application- und OnPremisesPublishing-Modellen sowie dem in der Reproduktion verwendeten JsonSerializationWriter. Führe das bereitgestellte Serialisierungsbeispiel aus und vergleiche dessen Ausgabe von onPremisesPublishing mit dem additional_data-Workaround. Als abgeschlossen gilt die Arbeit, wenn das SDK JSON ausgibt, das vom Backend akzeptiert wird, und die Patch-Anforderung nicht mehr InvalidJson_BadRequest zurückgibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
api
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
52/100

Neue Issues direkt in Ihr Postfach

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