Mengonfigurasi indeks dengan REST API

Halaman ini menjelaskan cara membuat, menghapus, dan mencantumkan indeks komposit mode Datastore menggunakan REST API mode Datastore.

Google Cloud CLI menyediakan cara praktis untuk mengakses REST API mode Datastore dan mengelola indeks gabungan Anda. Namun, Anda dapat langsung mengakses REST API mode Datastore untuk membuat alat Anda sendiri guna mengelola indeks komposit. Misalnya, Anda dapat membuat alat untuk mengotomatiskan penyediaan dan pengelolaan indeks.

Autentikasi dan otorisasi

Untuk mengakses metode REST API Firestore dalam mode Datastore di bawah, Anda harus mengautentikasi permintaan dengan memberikan token akses Google OAuth 2.0 dengan salah satu cakupan berikut:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Contoh cURL dan PowerShell di bawah menggunakan perintah gcloud auth print-access-token untuk mengautentikasi permintaan. Untuk informasi selengkapnya tentang cara mendapatkan token akses, lihat Menggunakan OAuth 2.0 untuk Mengakses Google API.

Otorisasi

Akun pengguna, grup, atau layanan terautentikasi dalam permintaan harus memiliki otorisasi untuk mengakses metode API. Untuk memberikan otorisasi akses ke metode pengindeksan, tetapkan salah satu peran Identity and Access Management (IAM) berikut:

  • Untuk akses baca dan edit indeks penuh, berikan salah satu peran berikut:

    • roles/owner
    • roles/editor
    • roles/datastore.owner
    • roles/datastore.indexAdmin
  • Untuk akses baca indeks saja (mendapatkan dan membuat daftar), berikan salah satu peran berikut:

    • roles/viewer
    • roles/datastore.user
    • roles/datastore.viewer

Untuk mengetahui informasi selengkapnya tentang cara menetapkan peran ini, lihat artikel tentang cara memberikan, mengubah, dan mencabut akses ke resource.

Sebelum memulai

Contoh curl dan PowerShell di bawah menggunakan Google Cloud CLI (Google Cloud CLI) untuk mengautentikasi permintaan. Untuk menjalankan contoh ini secara lokal, instal dan lakukan inisialisasi Google Cloud CLI.

Atau, Anda dapat mengakses gcloud dan curl dari konsol Google Cloud menggunakan Cloud Shell.

Mulai Cloud Shell

Membuat indeks komposit

Untuk membuat indeks komposit baru, gunakan metode projects.indexes.create.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • project-id: project ID Anda
  • kind: jenis entity yang akan diindeks
  • include-ancestors: apakah akan menyertakan ancestor entity dalam indeks untuk mendukung kueri ancestor, NONE atau ALL_ANCESTORS
  • property-name: properti yang akan diindeks, harus menentukan dua properti atau lebih
  • index-direction: urutan pengurutan untuk setiap properti, ASCENDING atau DESCENDING

Metode HTTP dan URL:

POST https://datastore.googleapis.com/v1/projects/project-id/indexes

Isi JSON permintaan:

{
  "kind": "kind",
  "ancestor": "include-ancestors",
  "properties": [
      {
          "name": "property-name",
          "direction": "index-direction"
      },
      {
          "name": "property-name",
          "direction": "index-direction"
      }
  ]
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://datastore.googleapis.com/v1/projects/project-id/indexes"

PowerShell

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://datastore.googleapis.com/v1/projects/project-id/indexes" | Select-Object -Expand Content

APIs Explorer

Salin isi permintaan dan buka halaman referensi metode. Panel API Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Tempelkan isi permintaan di alat ini, lengkapi kolom lainnya yang wajib diisi, lalu klik Jalankan.

Anda akan melihat respons JSON seperti berikut:

{
  "name": "projects/project-id/operations/S01vcFVpSmdBQ0lDDCoDIDgxZGVhZDM0ZDc4MS1jMjJhLWQ1ZTQtYmMyNS1iYjY2NWVlZCQadGx1YWZlZAcSMXJoLXJleGVkbmktbmltZGERClIS",
  "metadata": {
    "@type": "type.googleapis.com/google.datastore.admin.v1.IndexOperationMetadata",
    "common": {
      "startTime": "2019-12-05T22:27:19.238Z",
      "operationType": "CREATE_INDEX",
      "state": "INITIALIZING"
    },
    "indexId": "CICAgJiUpoMK"
  }
}

Mendapatkan status indeks

Mode Datastore memberikan ID indeks unik untuk setiap indeks. Anda dapat menggunakan ID indeks ini untuk mendapatkan status satu indeks dengan metode projects.indexes.get:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • project-id: project ID Anda
  • index-id: ID indeks komposit

Metode HTTP dan URL:

GET https://datastore.googleapis.com/v1/projects/project-id/indexes/index-id

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Jalankan perintah berikut:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://datastore.googleapis.com/v1/projects/project-id/indexes/index-id"

PowerShell

Jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://datastore.googleapis.com/v1/projects/project-id/indexes/index-id" | Select-Object -Expand Content

APIs Explorer

Buka halaman referensi metode. Panel API Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Lengkapi kolom yang wajib diisi, lalu klik Jalankan.

Anda akan melihat respons JSON seperti berikut:

{
  "projectId": "project-id",
  "indexId": "index-id",
  "kind": "Task",
  "ancestor": "NONE",
  "properties": [
    {
      "name": "done",
      "direction": "ASCENDING"
    },
    {
      "name": "priority",
      "direction": "ASCENDING"
    }
  ],
  "state": "READY"
}

Status indeks

Lihat status indeks untuk mengetahui informasi progres dan pesan error. Anda tidak dapat menggunakan indeks untuk kueri hingga mencapai status READY. Kemungkinan status indeks meliputi:

  • CREATING: pembuatan indeks sedang berlangsung.
  • ALREADY_EXISTS: tidak dapat menyelesaikan operasi karena indeks ini sudah ada.
  • ERROR: pembuatan indeks gagal. Perbaiki data yang menyebabkan error, hapus indeks ini, lalu buat indeks lagi.
  • READY: pembuatan indeks selesai. Indeks siap digunakan untuk kueri.

Menghapus indeks komposit

Metode HTTP dan URL:

DELETE https://datastore.googleapis.com/v1/projects/project-id/indexes/index-id

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Jalankan perintah berikut:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://datastore.googleapis.com/v1/projects/project-id/indexes/index-id"

PowerShell

Jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://datastore.googleapis.com/v1/projects/project-id/indexes/index-id" | Select-Object -Expand Content

APIs Explorer

Buka halaman referensi metode. Panel API Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Lengkapi kolom yang wajib diisi, lalu klik Jalankan.

Anda akan menerima kode status yang menandakan proses berhasil (2xx), dan sebuah respons kosong.

Mencantumkan semua indeks komposit

Untuk mencantumkan semua indeks komposit untuk database mode Datastore, gunakan metode projects.indexes.list.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • project-id: project ID Anda

Metode HTTP dan URL:

GET https://datastore.googleapis.com/v1/projects/project-id/indexes

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Jalankan perintah berikut:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://datastore.googleapis.com/v1/projects/project-id/indexes"

PowerShell

Jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://datastore.googleapis.com/v1/projects/project-id/indexes" | Select-Object -Expand Content

APIs Explorer

Buka halaman referensi metode. Panel API Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Lengkapi kolom yang wajib diisi, lalu klik Jalankan.

Anda akan melihat respons JSON seperti berikut:

{
 "indexes": [
  {
   "projectId": "project-id",
   "indexId": "CICAgOjXh4EK",
   "kind": "Task",
   "ancestor": "NONE",
   "properties": [
    {
     "name": "done",
     "direction": "ASCENDING"
    },
    {
     "name": "priority",
     "direction": "ASCENDING"
    }
   ],
   "state": "READY"
  },
  {
   "projectId": "project-id",
   "indexId": "CICAgNiroIEK",
   "kind": "Task",
   "ancestor": "NONE",
   "properties": [
    {
     "name": "due-date",
     "direction": "DESCENDING"
    },
    {
     "name": "priority",
     "direction": "ASCENDING"
    }
   ],
   "state": "CREATING"
  }
 ]
}