Microsoft Graph:"Request_ResourceNotFound" 对比 "ResourceNotFound" 对比 "ErrorItemNotFound" 对比 "ItemNotFound"
Microsoft Graph: "Request_ResourceNotFound" vs. "ResourceNotFound" vs. "ErrorItemNotFound" vs. "ItemNotFound"
我们的应用程序 "syncs" 用户数据从 AzureAD
到我们的数据库,我注意到一些请求失败并出现以下错误:
Code: Request_ResourceNotFound
Message: Resource 'S-1-5-21-2428866552-2013070483-421003753-10106' does not exist or one of its queried reference-property objects are not present.
错误本身是有道理的,因为这个条目不是我们 Azure AD
的一部分。
为了确保正确的错误处理,我研究了文档并感到困惑:Request_ResourceNotFound
记录在哪里?代码本身未在 Graph Docs and I found quite a few different Whosebug questions or GitHub issues with "similar", but different error codes, e.g. error code "ResourceNotFound" or here or here and then I found this Whosebug questions 中列出,它捕获了很多类似的错误代码:
switch (e.Error.Code)
{
case "Request_ResourceNotFound":
case "ResourceNotFound":
case "ErrorItemNotFound":
//case "itemNotFound":
// return JsonConvert.SerializeObject(new { Message = $"User '{email}' was not found." }, Formatting.Indented);
...
}
.NET SDK 还列出了一些错误代码,但是 Request_ResourceNotFound
不知何故丢失了。
我知道 Graph 是不同产品的保护伞,但是否有一些一般错误代码或(对于用户)哪个是 "user not found" 的 "correct" 错误代码?
HTTP 具有 "not found" 的标准错误代码。我建议使用
e.StatusCode == System.Net.HttpStatusCode.NotFound
然后就不会乱了。如果您对特定的已知错误代码有特殊处理,则检查该代码作为二次测试。这避免了需要测试代码的所有可能性。
我们的应用程序 "syncs" 用户数据从 AzureAD
到我们的数据库,我注意到一些请求失败并出现以下错误:
Code: Request_ResourceNotFound Message: Resource 'S-1-5-21-2428866552-2013070483-421003753-10106' does not exist or one of its queried reference-property objects are not present.
错误本身是有道理的,因为这个条目不是我们 Azure AD
的一部分。
为了确保正确的错误处理,我研究了文档并感到困惑:Request_ResourceNotFound
记录在哪里?代码本身未在 Graph Docs and I found quite a few different Whosebug questions or GitHub issues with "similar", but different error codes, e.g. error code "ResourceNotFound" or here or here and then I found this Whosebug questions 中列出,它捕获了很多类似的错误代码:
switch (e.Error.Code)
{
case "Request_ResourceNotFound":
case "ResourceNotFound":
case "ErrorItemNotFound":
//case "itemNotFound":
// return JsonConvert.SerializeObject(new { Message = $"User '{email}' was not found." }, Formatting.Indented);
...
}
.NET SDK 还列出了一些错误代码,但是 Request_ResourceNotFound
不知何故丢失了。
我知道 Graph 是不同产品的保护伞,但是否有一些一般错误代码或(对于用户)哪个是 "user not found" 的 "correct" 错误代码?
HTTP 具有 "not found" 的标准错误代码。我建议使用
e.StatusCode == System.Net.HttpStatusCode.NotFound
然后就不会乱了。如果您对特定的已知错误代码有特殊处理,则检查该代码作为二次测试。这避免了需要测试代码的所有可能性。