Saya menguasai API Explorer Looker. Bagaimana sekarang?

Dengan menggunakan API Explorer Looker, pengguna dapat menguji panggilan API hampir secara instan tanpa harus menulis satu baris kode pun. Jika telah menginstal ekstensi API Explorer dari Looker Marketplace, Anda dapat mengklik API Explorer di menu Aplikasi Looker untuk membuka API Explorer dan melihat dokumentasi API saat ini. Jika belum menginstal ekstensi API Explorer, Anda dapat menginstalnya dari bagian Aplikasi di Marketplace Looker.

Mungkin dengan menggunakan API Explorer, Anda telah menemukan alur kerja terbaik untuk membuat Tampilan secara dinamis, memperbarui kueri yang mendasarinya, dan menjadwalkannya ke berbagai pemangku kepentingan di perusahaan Anda. Pertanyaan umum berikutnya adalah, bagaimana cara menjalankan panggilan atau fungsi ini di luar API Explorer? Ada tiga cara umum untuk mengakses API ini:

  1. Software development kit (SDK) API Looker
  2. Permintaan HTTP
  3. Alat pengembangan software

Halaman ini akan memandu Anda cara menggunakan metode ini.

Sebelum memulai: Autentikasi dan port

Terlepas dari cara Anda mengakses API Looker, Anda memerlukan dua informasi terlebih dahulu: autentikasi API pribadi Anda (dalam bentuk client ID dan secret klien) dan nomor port yang digunakan instance Looker Anda.

Untuk menemukan client ID dan rahasia klien:

  • Jika Anda adalah admin Looker, buka halaman Pengguna di UI Looker untuk pengguna yang Anda minati, lalu buka Edit kunci.
  • Jika bukan admin Looker, Anda akan menerima client ID dan secret klien dari admin Looker.
Hal terpenting yang perlu diingat tentang client ID dan rahasia klien Anda adalah jangan bagikan kunci ini kepada siapa pun.

Untuk instance Looker yang dihosting di Google Cloud atau Microsoft Azure, dan untuk instance yang dihosting di Amazon Web Service (AWS) yang dibuat pada atau setelah 07/07/2020, jalur Looker API default menggunakan port 443. Untuk instance Looker yang dihosting di AWS yang dibuat sebelum 07/07/2020, jalur Looker API default menggunakan port 19999.

Jika Anda menghosting instance sendiri, hubungi admin sistem untuk mengetahui nomor port. URL ini dapat ditetapkan di kolom URL Host API pada panel admin Looker. Anda dapat melihatnya dengan membuka drop-down menu Admin di Looker dan memilih API.

Untuk informasi selengkapnya tentang port, buka halaman dokumentasi Memulai Looker API. Contoh berikut menggunakan port API 19999, tetapi Anda harus mengonfirmasi port yang digunakan oleh instance Anda.

Opsi 1: Menggunakan software development kit (SDK) Looker

Looker menawarkan SDK klien Looker API resmi dalam Python, Ruby, Typescript dan JavaScript, Swift, Kotlin, dan R. Anda dapat menemukan kode sumber dan contoh di repo GitHub sdk-examples Looker.

SDK menyediakan alat atau library yang memungkinkan developer berinteraksi dengan platform atau aplikasi tertentu. Dalam hal ini, SDK Looker biasanya berisi API. Untuk meminjam contoh dari developer web dan penulis Kristopher Sandoval, "API adalah saluran telepon, yang memungkinkan komunikasi masuk dan keluar rumah. SDK adalah rumah itu sendiri dan semua kontennya." Ia menjelaskan apa itu SDK dan kaitannya dengan API dalam artikel yang bagus, Apa Perbedaan Antara API dan SDK?

SDK Looker menyimpan semua endpoint API yang dapat Anda inginkan atau perlu gunakan, dan dikemas dengan cara yang memungkinkan Anda berinteraksi dengan Looker dengan lancar menggunakan bahasa pemrograman pilihan Anda. Fungsi ini memungkinkan Anda melakukan tugas berikut:

  • Mengirim data ke Looker
  • Mendapatkan data dari Looker
  • Memperbarui data di Looker
  • Menghapus data di Looker
Detail yang lebih terperinci tentang perbedaan di antara tindakan ini akan dibahas di bagian berikutnya.

Berikut adalah contoh cara memperbarui pengguna dengan Python SDK:

  1. Lakukan inisialisasi sesi dengan looker_sdk.init.
  2. Perbarui pengguna dengan sdk.update_user. Anda meneruskan user_id untuk menentukan pengguna yang ingin diperbarui.
  3. Gunakan models.WriteUser untuk menentukan cara Anda ingin memperbarui pengguna.

    #### Initialize API/SDK for more info go here: https://pypi.org/project/looker-sdk
    from looker_sdk import methods40, models
    sdk = looker_sdk.init40()
    me = sdk.me()
    # print(me)
    new_friend = sdk.update_user(user_id=29,
    body=models.WriteUser(first_name="newnew", last_name="new_again"))
    print(new_friend)
  

Saat menggunakan salah satu SDK kami, jika Anda menggunakan IDE seperti Visual Studio Code dan mengklik perintah (F12 di setelan default Visual Studio Code), lalu memilih buka definisi, Anda dapat melihat semua metode dan semua parameter yang diterima atau ditampilkan oleh metode. Atau, Anda dapat melihatnya di repo GitHub SDK — cari metode dan file model.

Opsi 2: Permintaan HTTP dengan curl atau library permintaan

Bagaimana jika Anda tidak ingin menulis skrip atau menghabiskan waktu berbulan-bulan atau bertahun-tahun untuk mempelajari bahasa pemrograman baru? Dalam hal ini, Anda dapat menggunakan curl untuk membuat permintaan HTTP guna memanfaatkan API Looker.

Permintaan HTTP mengirimkan pesan ke tujuan, yang dapat berupa server, ponsel, atau bahkan smart TV Anda. Ada beberapa jenis permintaan HTTP. Cara Anda menggunakan permintaan ini dengan API Looker bergantung pada sifat metode yang Anda teruskan sebagai bagian dari panggilan API. Beberapa metode memberi Anda data, beberapa mengirim data ke Looker, beberapa memperbarui data, dan beberapa menghapus atau menghapus data dari Looker.

Tindakan Metode
Buat POST
Baca GET
Perbarui PUT
Hapus DELETE

Mari kita mulai melakukan curling. Untuk mengetahui latar belakangnya, Zendesk memiliki tutorial yang bagus, Menginstal dan menggunakan cURL.

Untuk mulai melakukan panggilan HTTP ke Looker API, hal pertama yang perlu Anda lakukan adalah memanggil endpoint login Looker API menggunakan client ID dan secret klien Anda. Tindakan ini akan membuat token akses. Kemudian, Anda mengambil token akses ini dan meneruskannya dengan setiap panggilan. Token akses memastikan bahwa panggilan berasal dari pengguna yang diberi otorisasi.

Halaman ini menggunakan beberapa notasi untuk menunjukkan tempat Anda harus mengganti teks dalam contoh kode dengan informasi Anda. URL instance yang dihosting Looker memiliki format https://<hostname>.<subdomain>.<domain>.com; jika Anda melihat notasi ini dalam contoh di halaman ini, ganti bagian <hostname>.<subdomain>.<domain>.com dengan URL ke instance Looker Anda. Selain itu, kita menggunakan notasi <value> untuk menunjukkan tempat Anda harus memasukkan nilai yang sesuai, yang menggantikan <value> dalam contoh kode. Misalnya, dalam kode berikut, yang menampilkan client_id=<value>&client_secret=<value>, ganti <value> pertama dengan client_id dan <value> kedua dengan client_secret.

Berikut adalah curl untuk mendapatkan token akses:

  curl -d "client_id=<value>&client_secret=<value>" https://<hostname>.<subdomain>.<domain>.com:19999/login
  

Berikut adalah responsnya:

  {"access_token":"ABCDEFGHIJLMNOP1234","token_type":"Bearer","expires_in":3600}
  

Menerima token akan memberi tahu Anda bahwa Looker mengenali kredensial API Anda. Token ditampilkan dengan nilai expires_in, yang menunjukkan berapa lama token berlaku. Biasanya sekitar 60 menit (3.600 detik).

Setelah memiliki token akses, Anda bebas melakukan panggilan apa pun yang diinginkan. Semua endpoint dicantumkan menurut versi API dalam dokumentasi referensi Looker API 4.0. Dan ingat, situs Komunitas Looker adalah referensi yang bagus untuk mengajukan pertanyaan kepada pengguna Looker lainnya tentang cara mereka memanfaatkan API, mempelajari praktik terbaik, atau berbagi kesuksesan yang Anda peroleh dengan API kepada pengguna lain.

Misalnya, Anda ingin membuat pengguna baru. Untuk melakukannya:

  1. Tulis permintaan POST curl yang meneruskan token Anda untuk memberi tahu Looker bahwa Anda diberi otorisasi.
  2. Sertakan isi, dalam hal ini diformat sebagai JSON, untuk memberi tahu Looker atribut yang Anda inginkan untuk dimiliki pengguna baru. (Ada beberapa kolom wajib untuk panggilan API, jadi lihat dokumentasi referensi Looker API 4.0.)
  3. Akhiri notasi curl dengan endpoint yang ingin Anda gunakan, dalam hal ini, users.

  curl -H "Authorization: token <value>
  " -H "Content-Type: application/json" -d "{\"first_name\": \"<value>\",\"last_name\": \"<value>\", \"email\":\"<value>\"}" https://<hostname>.<subdomain>.<domain>.com:19999/api/4.0/users

-H adalah singkatan dari header, dan -d adalah singkatan dari data. Untuk mengetahui informasi selengkapnya tentang perintah curl, buka gist GitHub ini.

Anda baru saja membuat pengguna dengan nama depan, nama belakang, dan alamat email yang memiliki nilai yang Anda masukkan sebelumnya.

Bagaimana jika Anda ingin menulisnya dalam skrip, sehingga Anda tidak perlu menulis perintah ini setiap kali ingin menyelesaikan alur kerja ini? Anda dapat menggunakan bahasa pemrograman dan library seperti library requests Python.

Misalnya, berikut adalah skrip yang menggunakan library requests untuk mendapatkan Tampilan menggunakan ID Tampilan (<value> dalam panggilan looks), menerapkan filter baru, lalu mendownload hasilnya sebagai file CSV:

  import requests
  ID = '<value>'
  SECRET = '<value>'
  PARAMS = {'client_id':<value>,
            'client_secret': <value>}
  URL = "https://<hostname>.<subdomain>.<domain>.com:19999/api/4.0/login"
  r = requests.post(url = <value>, params = <value>, verify=False)
  data = r.json()
  token = data['access_token']
  print(token)
  headers = {'Authorization': "Bearer " + token}
  print(headers)
  look_url = "https://<hostname>.<subdomain>.<domain>.com:19999/api/4.0/looks/<value>"
  look = requests.get(look_url, headers=headers, verify=False)
  json = look.json()
  query = json['query']
  ### ADD MODEL HERE
  ### ADD FILTER
  body = {
      "model":"<value>",
      "view":query['view'],
      "fields":query['fields'],
      "filters":{<value>}
  }
  print(body)
  run_inline = "https://<hostname>.<subdomain>.<domain>.com:19999/api/4.0/queries/run/csv"
  run_query = requests.post(run_inline, headers = headers, json=body, verify=False)
  print(run_query._content)
  print(run_query.url)

Opsi 3: Alat pengembangan software

Alat seperti Postman atau Paw memungkinkan pengguna berinteraksi atau memanfaatkan endpoint API melalui antarmuka pengguna grafis (GUI). Proses yang sama berlaku untuk alat pengembangan software seperti yang berlaku untuk permintaan HTTP. Langkah pertama adalah login dengan secret klien dan client ID Anda. Kemudian, simpan token akses sebagai token pembawa untuk memberikan otorisasi pada panggilan API berikutnya, seperti yang ditampilkan di sini di Postman.

GUI Postman, yang diisi dengan URL POST Looker, rahasia klien, dan client ID.

Postman atau alat pengembangan software lainnya (seperti Paw) memungkinkan Anda menentukan otorisasi, isi, parameter, dan header semuanya dalam UI-nya, lalu membuat permintaan untuk Anda. Fungsi ini juga akan mengeksekusi endpoint saat Anda menekan kirim.

Lanjutkan! (Tapi hati-hati)

Setelah Anda dapat menggunakan API Looker melalui SDK, permintaan HTTP, dan alat pengembangan software, lanjutkan dan uji semuanya. Namun, perlu diketahui bahwa, meskipun penggunaan API dapat membantu mengotomatiskan proses seperti membuat atau menetapkan ulang jadwal setelah pengguna keluar dari perusahaan Anda, penggunaan API yang tidak tepat dapat menyebabkan kerusakan pada instance.

Beberapa hal umum yang perlu diingat:

  • Berhati-hatilah saat mengedit izin atau menghapus pengguna, terutama secara massal. Anda dapat menghapus atau mengunci banyak pengguna, termasuk admin, dan tindakan seperti ini tidak dapat dibatalkan dengan mudah.
  • Panggilan API meningkatkan penggunaan instance, jadi coba jadwalkan panggilan tersebut untuk jam non-puncak guna mendapatkan performa yang optimal.
  • Ada batas file terbuka di setiap server instance, sehingga instance dapat mengalami error melalui penggunaan API yang tidak bertanggung jawab.
  • Uji alur kerja dan fungsi dalam skala kecil sebelum menambahkannya ke produksi.
  • Jangan pernah membagikan kredensial API Anda atau membiarkannya dalam file yang dapat diakses oleh pengguna lain.

Jika Anda memiliki pertanyaan atau ingin membagikan ide keren, lihat Komunitas Looker. Jangan ragu untuk memberi tahu kami jika ada hal yang dapat kami tingkatkan atau jika ada contoh lain yang ingin Anda tambahkan ke dokumentasi kami.