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 yang mudah untuk mengakses REST API mode Datastore dan mengelola indeks komposit Anda. Namun, Anda dapat langsung mengakses REST API mode Datastore untuk membuat alat sendiri guna mengelola indeks komposit Anda. Misalnya, Anda dapat membuat alat untuk mengotomatiskan penyediaan dan pengelolaan indeks.

Autentikasi dan otorisasi

Untuk mengakses Firestore dalam metode REST API mode Datastore di bawah ini, 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 mengetahui informasi selengkapnya tentang cara mendapatkan token akses, lihat Menggunakan OAuth 2.0 untuk Mengakses Google API.

Otorisasi

Pengguna, grup, atau akun layanan yang diautentikasi dalam permintaan harus memiliki otorisasi untuk mengakses metode API. Untuk mengizinkan 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 (dapatkan dan daftar), berikan salah satu peran berikut:

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

Untuk mengetahui informasi selengkapnya tentang menetapkan peran ini, baca artikel 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 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 menyertakan ancestor entity dalam indeks atau tidak untuk mendukung kueri ancestor, baik NONE maupun ALL_ANCESTORS
  • property-name: properti yang akan diindeks, harus menentukan dua atau beberapa properti
  • index-direction: tata urutan 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 APIs Explorer akan 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 memberi setiap indeks ID indeks unik. Anda dapat menggunakan ID indeks ini untuk mendapatkan status dari 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 APIs Explorer akan 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 sampai 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 kembali.
  • 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 APIs Explorer akan 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 berhasil (2xx), serta respons yang 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 APIs Explorer akan 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"
  }
 ]
}