首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google Cloud Datastore REST API v1 (gqlQuery)

Google Cloud Datastore REST API v1 (gqlQuery)
EN

Stack Overflow用户
提问于 2017-02-07 19:48:52
回答 2查看 1.3K关注 0票数 2

有人可以告诉我如何使用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

代码语言:javascript
复制
Example gqlQuery = ("Select * From Customer")

谷歌DataStore结构示例

代码语言:javascript
复制
   id = "78090499534213120" 
   Address = "888 Fake St"
   City = "Fake City"
   FirstName = "Name"
   LastName = "Name"
   State = "CT"
EN

回答 2

Stack Overflow用户

发布于 2017-03-20 00:40:32

代码语言:javascript
复制
POST https://datastore.googleapis.com/v1/projects/{YOUR_PROJECT_ID}:runQuery?key={YOUR_API_KEY}

其中{YOUR_PROJECT_ID}位于您的项目的云控制台主页上,由字母数字组成。

消息的正文将是一个包含查询详细信息的JSON字符串,因此在您的示例中:

代码语言:javascript
复制
{
 "gqlQuery":{"queryString": "select * from customer"}
}

如果要包含条件,也可以使用参数绑定来实现。下面的示例展示了如何使用位置绑定来实现这一点:

代码语言:javascript
复制
{
   "gqlQuery":
   {
      "queryString": "select * from Customers where State = @1 AND FirstName = @2",
      "positionalBindings": [
         {"value": {"stringValue": "CT"}}.
         {"value": {"stringValue": "Name"}}
      ]
   }
}

除了位置绑定,您还可以执行命名绑定:

代码语言:javascript
复制
{
   "gqlQuery":
   {
      "queryString": "select * from Customers where State = @State AND FirstName = @FirstName",
      "namedBindings": {
          "State": {"value": {"stringValue": "CT"}},
          "FirstName": {"value": {"stringValue": "Name"}}
      }
   }
}

最后,不推荐使用,因为它可能导致查询注入攻击,您可以通过设置适当的标志在查询字符串本身中包含文字:

代码语言:javascript
复制
{
   "gqlQuery":
   {
      "queryString": "select * from Customers where State = 'CT' AND FirstName = 'Name'",
      "allowLiterals": true
   }
}
票数 2
EN

Stack Overflow用户

发布于 2017-11-23 12:32:49

当你发出这个请求时,你会得到一个正确的响应吗?我得到了以下200个响应,但是没有看到任何我期望的数据行

{ "batch":{ "entityResultType":"PROJECTION","endCursor":"CgA=","moreResults":"NO_MORE_RESULTS“}}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42089141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档