2017-06-19 104 views
0

使用Google API Explorer插入到GCP的數據存儲區時出現以下錯誤。使用Google API Explorer時出現錯誤400

我試過使用另一個名稱和ID,但仍然是錯誤。我該如何糾正這一點?

以下是請求正文和錯誤。

{ 
    "mode": "Transactional", 
    "mutations": [ 
     { 
      "insert": { 
       "key": { 
        "path": [ 
         { 
          "id": "56294995342131231", 
          "name": "CL-001", 
          "kind": "Log" 
         } 
        ], 
        "partitionId": { 
         "namespaceId": "", 
         "projectId": "triplog-169706" 
        } 
       }, 
       "properties": { 
        "Title": { 
         "stringValue": "Space Needle" 
        }, 
        "Longitude": { 
         "doubleValue": 0.00 
        }, 
        "Latitude": { 
         "doubleValue": 0.00 
        }, 
        "Date": { 
         "timestampValue": "2015-07-03T10:51:50.649Z" 
        }, 
        "Rating": { 
         "integerValue": "5" 
        }, 
        "Notes": { 
         "stringValue": "Wonderful site to see" 
        } 
       } 
      } 
     } 
    ] 
} 


{ 
    "error": { 
     "code": 400, 
     "message": "Invalid value at 'mutations[0].insert.key.path[0]' (oneof), oneof field 'id_type' is already set. Cannot set 'name'", 
     "status": "INVALID_ARGUMENT", 
     "details": [ 
      { 
       "@type": "type.googleapis.com/google.rpc.BadRequest", 
       "fieldViolations": [ 
        { 
         "field": "mutations[0].insert.key.path[0]", 
         "description": "Invalid value at 'mutations[0].insert.key.path[0]' (oneof), oneof field 'id_type' is already set. Cannot set 'name'" 
        } 
       ] 
      } 
     ] 
    } 
} 
+0

我已經修改了以下內容: 「路徑」:[ { 「ID」: 「1235629499534213120」, 「名」 的 「ID = 1235629499534213120」, 「種類」: 「日誌」 } ] 現在錯誤是這樣的: { 「錯誤」:{ 「代碼」:400, 「消息」: 「事務提交要求進行事務處理」, 「狀態」: 「INVALID_ARGUMENT」 } } – LCL

回答

0

根據文檔,它看起來應該只設置路徑元素中的「名稱」或「id」,而不是兩者。

https://cloud.google.com/datastore/docs/reference/rest/v1/Key#PathElement

+0

我是馬通過刪除「name」字段修改修訂,現在錯誤要求指定事務,因爲它是提交。 「事務提交需要一個事務」。 我試過「開始」,「BeginTransaction」,「開始」,但它會拋出INVALID ARGUMENT錯誤。 提供的提示是: 「與提交關聯的事務的標識符。事務標識符通過調用Datastore.BeginTransaction返回。」 那麼,我應該爲「交易」提供什麼價值? 我在哪裏可以找到它? – LCL

0

我終於明白了。 要獲得「事務」,只需運行beginTransaction API。

POST https://datastore.googleapis.com/v1/projects/ {專案編號}:的BeginTransaction

這與標識符,它是一個長字符串將響應。用它作爲「交易」的價值。

相關問題