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 上使用以下变体发布它:

我使用的代码基本上是 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" 属性。