Rest 使用oData访问Cosmos DB表端点
我正在学习Cosmos DB,并在Microsoft Cosmos DB文档网站上浏览以下教程: 不幸的是,我被困在试图访问我创建的实体的位置。每当我运行GET请求以接收oData响应时,我都会收到以下错误消息:Rest 使用oData访问Cosmos DB表端点,rest,azure,odata,azure-cosmosdb,Rest,Azure,Odata,Azure Cosmosdb,我正在学习Cosmos DB,并在Microsoft Cosmos DB文档网站上浏览以下教程: 不幸的是,我被困在试图访问我创建的实体的位置。每当我运行GET请求以接收oData响应时,我都会收到以下错误消息: { "code": "BadRequest", "message": "Request url is invalid.\r\nActivityId: e7df6ff2-eaea-4d10-8823-ff0cee3a62c2" } 我有一个类似这样的端点(请注意,我用abc替
{
"code": "BadRequest",
"message": "Request url is invalid.\r\nActivityId: e7df6ff2-eaea-4d10-8823-ff0cee3a62c2"
}
我有一个类似这样的端点(请注意,我用abc
替换了我的实际Cosmos帐户):
https://abc.documents.azure.com
我还尝试使用启动我的oData查询:
https://abc.documents.azure.com:443
根据教程,我应该创建一个数据库、一个表,并添加三个实体。我成功地将C#与表API的TableOperation.Insert()
方法结合使用。由于我可以使用表API成功创建表和实体,因此我知道我使用的端点是准确的,并确保我从连接字符串中复制/粘贴了该元素,并且我知道它与Azure中的数据库匹配
以下是Azure中数据库的外观:
接下来,本教程将使用表端点运行查询。这里是我开始感到困惑的地方,因为我找不到解释如何获取表端点的文档
以下是本教程显示的示例:
https:///People(PartitionKey='Harp',RowKey='Walter')
所以我想,试试这个:
https://abc.documents.azure.com/People(PartitionKey='Harp',RowKey='Walter')
这不起作用,所以我想可能还需要指定数据库(如上图所示,TableDB):
https://abc.documents.azure.com/TablesDB/People(PartitionKey='Harp',RowKey='Walter')
这也行不通。正如本文前面提到的,我确实尝试在所有测试查询的末尾追加:443
,但错误响应仍然相同
现在,我正在和邮递员一起尝试这一切
另外,我也试过在《邮递员》中得到这样一个令牌:
https://login.microsoftonline.com/{{tenant_id}/oauth2/token
然后使用Authorization
参数发送GET请求并传递令牌,但仍然会得到与上面列出的相同的错误
您知道如何正确构造表端点以成功发送请求并接收oData响应吗
谢谢。我正在使用基于PartitionKey
和RowKey
从表中查询实体,在我这方面效果很好,请参考它
请求和答复:
表中的实体:
原始问题中使用的端点是一个文档端点,它实际上公开了我们的SQL API,而不是表API。由于表已经过时,我们不再宣传该端点,而是宣传支持与Azure表存储相同REST API的表端点。您可以查看详细的演练,了解如何与端点对话、需要哪些标题等
请注意,与端点对话的最简单方法是只使用表API SDK之一。指向我们的.NET SDK,但如果您在该页面的左侧查看,您将在目录中看到Java、Python和节点SDK的链接。请注意,这些SDK与用于Azure表存储的SDK相同。还请注意,您可以使用它们提交OData查询。我刚刚运行了与您相同的代码,但针对我的表,如下所示:
https://abc.documents.azure.com/dbs/TablesDB/colls/People
。以下是json响应:{“code”:“Unauthorized”,“message”:“缺少所需的标头授权。请确保传递了有效的授权令牌。\r\n活动ID:a28dcb9f-b0fe-4ca5-85d4-6ca195eabc0d”}
请确保提供有效的授权令牌并设置x-ms-date标头,显示用于执行查询操作的常用请求头,请参考。@FredHan MSFT在另一个注释中,与每个属性关联的“$t”值表示什么?感谢您提供此文档!