Saya menguasai API Explorer Looker. Bagaimana sekarang?

Dengan menggunakan API Explorer Looker, pengguna dapat menguji panggilan API hampir seketika 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 Applications di Looker Marketplace.

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:

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

Halaman ini membahas cara menggunakan metode tersebut.

Sebelum memulai: Autentikasi dan port

Terlepas dari cara mengakses API Looker, Anda memerlukan dua informasi terlebih dahulu: autentikasi API pribadi (dalam bentuk client ID dan rahasia 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 Anda bukan admin Looker, Anda akan menerima client ID dan rahasia 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 akan menggunakan port 19999.

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

Untuk informasi selengkapnya tentang port, buka halaman dokumentasi Mulai menggunakan 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 di 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 umumnya berisi API. Untuk meminjam contoh dari developer web dan penulis Kristopher Sandoval, "API adalah saluran telepon, yang memungkinkan komunikasi di dalam dan di luar 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 menampung semua endpoint API yang mungkin ingin atau perlu Anda gunakan, dan dikemas dengan cara yang memungkinkan Anda berinteraksi secara lancar dengan Looker menggunakan bahasa pemrograman pilihan Anda. Fungsi tersebut memungkinkan Anda melakukan tugas-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 tersebut akan dibahas di bagian berikutnya.

Berikut adalah contoh cara mengupdate 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 diupdate.
  3. Gunakan models.WriteUser untuk menentukan cara Anda ingin mengupdate 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 command-click (F12 di setelan default Visual Studio Code), lalu memilih go todefinition, Anda dapat melihat semua metode dan semua parameter yang diterima atau ditampilkan oleh metode tersebut. 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 berbulan-bulan atau bertahun-tahun mempelajari bahasa pemrograman baru? Dalam hal ini, Anda dapat menggunakan curl untuk membuat permintaan HTTP agar dapat menggunakan Looker API.

Permintaan HTTP mengirim pesan ke tujuan, yang bisa berupa server, ponsel, atau bahkan televisi pintar 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, sebagian mengirim data ke Looker, memperbarui data, dan sebagian lagi menghapus atau menghapus data dari Looker.

Tindakan Metode
Buat POST
Baca GET
Memperbarui PUT
Hapus DELETE

Ayo kita curling. Di latar belakang, 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 rahasia klien Anda. Tindakan ini akan membuat token akses. Kemudian, ambil token akses ini dan teruskan dengan setiap panggilan. Token akses memastikan bahwa panggilan berasal dari pengguna yang diotorisasi.

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

Berikut adalah curl untuk mendapatkan token akses:

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

Berikut jawabannya:

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

Jika token diterima, Looker akan mengenali kredensial API Anda. Token ditampilkan dengan nilai expires_in, yang menunjukkan berapa lama token valid. Biasanya sekitar 60 menit (3.600 detik).

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

Katakanlah Anda ingin membuat pengguna baru. Untuk melakukan ini:

  1. Tulis permintaan POST curl yang meneruskan token Anda untuk memberi tahu Looker bahwa Anda memiliki otorisasi.
  2. Sertakan isi, dalam hal ini yang diformat sebagai JSON, untuk memberi tahu Looker apa atribut yang Anda inginkan agar dimiliki pengguna baru. (Ada beberapa kolom wajib diisi 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 menulis ini dalam skrip, sehingga Anda tidak perlu menulis perintah ini setiap kali Anda ingin menyelesaikan alur kerja ini? Anda dapat menggunakan bahasa dan library pemrograman 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 sebagaimana berlaku untuk permintaan HTTP. Langkah pertama adalah masuk dengan rahasia klien dan ID klien Anda. Kemudian, simpan token akses sebagai token pemilik untuk mengotorisasi panggilan API selanjutnya, seperti yang ditampilkan di Postman.

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

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

Teruskan! (Tapi hati-hati)

Setelah Anda dapat menggunakan API Looker melalui SDK, permintaan HTTP, dan alat pengembangan software, lanjutkan dan uji berbagai hal. Akan tetapi, perlu diketahui bahwa meskipun menggunakan 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 di luar jam kerja untuk mendapatkan performa yang optimal.
  • Ada batas file terbuka pada setiap server instance, sehingga ada kemungkinan instance 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 meninggalkannya di 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 perlu diperbaiki atau jika ada contoh lain yang ingin Anda tambahkan ke dokumentasi kami.