【发布时间】:2020-05-05 02:29:25
【问题描述】:
尝试调用 Microsoft 图形上的更新项 API 端点时,字段名称似乎区分大小写。 https://docs.microsoft.com/en-us/graph/api/listitem-update?view=graph-rest-1.0&tabs=http 此处的文档并未说明这一点。对 /fields 端点的调用是否区分大小写?
我正在尝试更新名为“Status”的单行文本字段(内部名称和显示名称都是“Status”(大写首字母 S)。当调用 /v1.0/sites/{id} /lists/{id}/item{id}/fields 来自 Graph Explorer 的端点,调用失败:
{
"status":"testing"
}
返回以下内容。
{
"error": {
"code": "invalidRequest",
"message": "Field 'status' is not recognized",
"innerError": {
"request-id": "8700ae5d-f2e5-4138-891a-f980630aa7d1",
"date": "2020-05-02T15:30:14"
}
}
}
但是,如果 PATCH 请求的正文如下:
{
"Status":"testing"
}
调用成功并返回正在更新的项目、所有字段和正确更新的“状态”字段。
鉴于我直接从 C# 调用 API(使用 HttpClient 而未使用 SDK,因此 FieldValueSet 不是此处的选项)并使用 CamelCasePropertyNamesContractResolver 和以下代码为 JsonSerializerSettings 使用:
var request = new HttpRequestMessage(method, $"{graphEndpoint}{version}{uri}");
if (!string.IsNullOrEmpty(body))
{
request.Content = new StringContent(body, Encoding.UTF8, "application/json");
}
var response = await _httpClient.SendAsync(request);
并且身体总是驼峰式的并且失败了。这是一个错误吗?如果没有,什么被认为是更好的做法,因为我尝试过的大多数事情(JObject 和其他人)似乎真的是回补黑客。
【问题讨论】:
标签: sharepoint microsoft-graph-api