documentDB .net Rest 使用自动 gen id 创建文档
documentDB .net Rest Create Docs with auto gen id
我正在尝试通过其余 API 在 documentDB 中创建一个新文档。我会使用 SDK,但我 运行 来自 asp.net 核心的项目与 SDK 尚不兼容。
我想让 documentDB 自动生成文档的 ID,但我的请求有问题。
通过 documentDB rest api(使用基于 id 的路由)创建文档时,我应该将 ids 值设置为什么?
现在我遇到了 400 错误请求错误。
我试过在 id 上使用以下变体发布它:
- 无编号属性
- id: 空
- id: ""
我使用的代码基本上是 github .net rest 示例中的代码,我有替换调用,get 调用工作正常。
这是我发出请求的代码:
//Create a document
verb = "POST";
resourceType = "docs";
resourceLink = string.Format("dbs/{0}/colls/{1}/docs", databaseId, collectionId);
resourceId =string.Format("dbs/{0}/colls/{1}", databaseId, collectionId);
authHeader = GenerateMasterKeyAuthorizationSignature(verb, resourceId, resourceType, masterKey, "master", "1.0");
client.DefaultRequestHeaders.Remove("authorization");
client.DefaultRequestHeaders.Add("authorization", authHeader);
string content = JsonConvert.SerializeObject(document);
StringContent contentMessage = new StringContent(content, System.Text.Encoding.UTF8, "application/json");
contentMessage.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
contentMessage.Headers.ContentType.CharSet = null;
var r = client.PostAsync(baseUri + resourceLink, contentMessage).Result;
System.Diagnostics.Debug.WriteLine(r.Content.ReadAsStringAsync().Result);
return r.Content.ReadAsStringAsync().Result;
您应该为 "id" 属性 提供一个字符串值。 auto-id 功能(如 Larry 提到的)是客户端功能,而不是 REST API 的一部分。因此,当直接从 REST 使用时,您必须生成一个 Guid(或任何唯一字符串)并使用该值设置 "id" 属性。
我正在尝试通过其余 API 在 documentDB 中创建一个新文档。我会使用 SDK,但我 运行 来自 asp.net 核心的项目与 SDK 尚不兼容。
我想让 documentDB 自动生成文档的 ID,但我的请求有问题。
通过 documentDB rest api(使用基于 id 的路由)创建文档时,我应该将 ids 值设置为什么?
现在我遇到了 400 错误请求错误。
我试过在 id 上使用以下变体发布它:
- 无编号属性
- id: 空
- id: ""
我使用的代码基本上是 github .net rest 示例中的代码,我有替换调用,get 调用工作正常。
这是我发出请求的代码:
//Create a document
verb = "POST";
resourceType = "docs";
resourceLink = string.Format("dbs/{0}/colls/{1}/docs", databaseId, collectionId);
resourceId =string.Format("dbs/{0}/colls/{1}", databaseId, collectionId);
authHeader = GenerateMasterKeyAuthorizationSignature(verb, resourceId, resourceType, masterKey, "master", "1.0");
client.DefaultRequestHeaders.Remove("authorization");
client.DefaultRequestHeaders.Add("authorization", authHeader);
string content = JsonConvert.SerializeObject(document);
StringContent contentMessage = new StringContent(content, System.Text.Encoding.UTF8, "application/json");
contentMessage.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
contentMessage.Headers.ContentType.CharSet = null;
var r = client.PostAsync(baseUri + resourceLink, contentMessage).Result;
System.Diagnostics.Debug.WriteLine(r.Content.ReadAsStringAsync().Result);
return r.Content.ReadAsStringAsync().Result;
您应该为 "id" 属性 提供一个字符串值。 auto-id 功能(如 Larry 提到的)是客户端功能,而不是 REST API 的一部分。因此,当直接从 REST 使用时,您必须生成一个 Guid(或任何唯一字符串)并使用该值设置 "id" 属性。