Есть ли способ предотвратить ошибку 404 для учетных записей потребителей при попытке получить данные не потребителя? - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть приложение, которое извлекает данные профиля с помощью API Microsoft Graph. Приложение должно иметь возможность извлекать профили как для учетной записи Work / School Azure, так и для пользовательских учетных записей Azure. Проблема, с которой я столкнулся, заключается в том, что при получении данных, которые отображаются в учетных записях Work / School, но не в учетных записях потребителей, я получаю ошибку 404. Другими словами, мое приложение должно обрабатывать учетные записи рабочих / учебных заведений и учетные записи потребителей одинаково, извлекая только те данные, которые Microsoft Graph отображает для учетной записи потребителя, без возврата ошибки, когда данные не раскрываются.

При вызове этой конечной точки https://graph.microsoft.com/v1.0/me/ с токеном авторизации для учетной записи потребителя я получаю следующий ответ:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(etc)/$entity",
    "displayName": "<fullname>",
    "surname": "<lastname>",
    "givenName": "<firstname>",
    "id": "value",
    "userPrincipalName": "value@hotmail.com",
    "businessPhones": [],
    "jobTitle": null,
    "mail": null,
    "mobilePhone": null,
    "officeLocation": null,
    "preferredLanguage": null
}

Позвонив по номеру https://graph.microsoft.com/v1.0/me/?$select=birthday с учетной записью Work / School, я получаю данные, с которыми могу работать. Между тем, вызов https://graph.microsoft.com/v1.0/me/?$select=birthday с тем же токеном авторизации возвращает:

{
    "error": {
        "code": "ResourceNotFound",
        "message": "Resource not found.",
        "innerError": {
            "request-id": "5dac0b98-0335-4de2-b8fa-3b9a2dfbe378",
            "date": "2019-04-26T23:23:21"
        }
    }
}

Есть ли способ получить данные профиля для учетной записи потребителя, все еще пытаясь получить неэкспонированные данные в учетной записи Work / School без возврата 404?

1 Ответ

0 голосов
/ 29 апреля 2019

Поскольку вы запрашиваете несуществующие данные (birthday), вы должны получить ответ 404 Not Found.Согласно RFC 7231, раздел 6.5.4 :

Код состояния 404 (не найден) указывает, что исходный сервер не нашел текущее представление для целевого ресурса или не желаетраскрыть, что он существует.

...