microsoftgraph / microsoftgraph/msgraph-sdk-python
microsoft.graph.onPremisesPublishing wrong serialization
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 630
- Forks
- 96
- Merge medio
- 15 h 20 min
- PR fusionados (30 d)
- 3
Descripción
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
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con los modelos generados Application y OnPremisesPublishing y con el JsonSerializationWriter utilizado en la reproducción. Ejecuta el ejemplo de serialización proporcionado y compara su salida de onPremisesPublishing con la solución alternativa additional_data. Se considera terminado cuando el SDK emite JSON aceptado por el backend y la solicitud de patch ya no devuelve InvalidJson_BadRequest.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- api
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Tranquilo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 52/100