有人可以告诉我如何使用runQuery方法通过Google Cloud Datastore REST API v1来执行gqlQuery的语法吗?我只需要帮助理解REST API的查询结构,而不需要Google OAUTH或设置Cloud Datatore的帮助。我在下面包含了一个指向文档、要运行的示例gqlQuery和云数据存储结构的链接。
方法: projects.runQuery https://cloud.google.com/datastore/docs/reference/rest/v1/projects/runQuery
Example gqlQuery = ("Select * From Customer")谷歌DataStore结构示例
id = "78090499534213120"
Address = "888 Fake St"
City = "Fake City"
FirstName = "Name"
LastName = "Name"
State = "CT"发布于 2017-03-20 00:40:32
POST https://datastore.googleapis.com/v1/projects/{YOUR_PROJECT_ID}:runQuery?key={YOUR_API_KEY}其中{YOUR_PROJECT_ID}位于您的项目的云控制台主页上,由字母数字组成。
消息的正文将是一个包含查询详细信息的JSON字符串,因此在您的示例中:
{
"gqlQuery":{"queryString": "select * from customer"}
}如果要包含条件,也可以使用参数绑定来实现。下面的示例展示了如何使用位置绑定来实现这一点:
{
"gqlQuery":
{
"queryString": "select * from Customers where State = @1 AND FirstName = @2",
"positionalBindings": [
{"value": {"stringValue": "CT"}}.
{"value": {"stringValue": "Name"}}
]
}
}除了位置绑定,您还可以执行命名绑定:
{
"gqlQuery":
{
"queryString": "select * from Customers where State = @State AND FirstName = @FirstName",
"namedBindings": {
"State": {"value": {"stringValue": "CT"}},
"FirstName": {"value": {"stringValue": "Name"}}
}
}
}最后,不推荐使用,因为它可能导致查询注入攻击,您可以通过设置适当的标志在查询字符串本身中包含文字:
{
"gqlQuery":
{
"queryString": "select * from Customers where State = 'CT' AND FirstName = 'Name'",
"allowLiterals": true
}
}发布于 2017-11-23 12:32:49
当你发出这个请求时,你会得到一个正确的响应吗?我得到了以下200个响应,但是没有看到任何我期望的数据行
{ "batch":{ "entityResultType":"PROJECTION","endCursor":"CgA=","moreResults":"NO_MORE_RESULTS“}}
https://stackoverflow.com/questions/42089141
复制相似问题