Cara Membuat API Proxy Gateway dengan AWS HTTP API

969 BLOG Cara Membuat API Proxy Gateway dengan AWS HTTP API

Di dunia yang serba cepat saat ini, integrasi tanpa batas antara berbagai layanan dan sistem menjadi semakin penting.

Keamanan juga sama pentingnya saat menyatukan layanan ini. Jadi sangat penting untuk merancang aplikasi secara bermakna sehingga gesekan antar sistem yang berbeda dapat diminimalkan.

Artikel ini berfokus pada komunikasi antara klien dan layanan backend lainnya – apakah itu fungsi tanpa server atau API pihak ketiga.

Apakah Anda seorang pengembang, arsitek, atau penggemar teknologi, tutorial ini akan membekali Anda dengan pengetahuan dan keterampilan untuk menyiapkan gateway API yang tangguh dan dapat diskalakan yang menyederhanakan komunikasi antara klien dan layanan backend.

Penyegaran Singkat tentang Dasar-Dasar

Sebelum kita mendalami dan memahami potensi AWS HTTP API untuk merampingkan proses integrasi API Anda, mari kita cepat memoles terminologi dasar.

Banyak dari Anda mungkin mengerti apa itu API dan gateway proxy. Yang mengatakan, hal-hal mungkin menjadi sedikit mengintimidasi ketika kita menggali lebih dalam konsep-konsep seperti itu sambil mencoba memahami detail dan perbedaan seluk beluk.

API (Application Programming Interface) adalah abstraksi yang memungkinkan dua program untuk berkomunikasi satu sama lain. API dapat berupa metode yang diekspos oleh penyedia layanan API dalam bentuk paket atau titik akhir tempat informasi dapat ditransmisikan (REST API).

Gateway proxy adalah gateway yang meneruskan permintaan yang masuk ke URI target, sedangkan gateway biasa mengirimkan informasi bolak-balik antara klien dan server.

Gateway proxy juga merupakan cara yang bagus untuk menutupi URI target dan kunci API Anda, yang jika tidak akan terekspos jika panggilan jaringan dibuat langsung dari frontend (browser).

HTTP API vs REST API – Apa Bedanya?

Secara teknis, tidak ada “HTTP API” – ini khusus untuk AWS.

Saat membuat gateway API di AWS, Anda dapat membuat HTTP API atau REST API. Perbedaan antara keduanya adalah bahwa yang terakhir memberikan lebih banyak fleksibilitas dalam mendesain API, seperti pelambatan per-klien, validasi permintaan, titik akhir pribadi, dan sebagainya.

Mengapa Memilih HTTP API Dibanding REST API?

Seperti disebutkan di atas, REST API memberikan lebih banyak fleksibilitas dan konfigurasi yang lebih halus untuk menyiapkan API jika dibandingkan dengan API HTTP. Mengapa Anda kemudian ingin bekerja dengan HTTP API?

Yah, ini tidak selalu tentang fleksibilitas memiliki banyak opsi untuk dipilih – kecuali jika persyaratannya konkret, ini biasanya menambah kebisingan ketika harus memilih rangkaian opsi yang tepat.

Di sisi lain, API HTTP hadir dengan opsi konfigurasi terbatas, yang membantu Anda membangun API dengan keputusan minimal.

Keuntungan lain dari HTTP API adalah memungkinkan Anda menambahkan pengotorisasi JWT ke gateway, yang tidak ada di REST API.

Jika Anda menggunakan sistem autentikasi pihak ketiga dalam aplikasi Anda, masuk akal untuk menggunakan pengotorisasi JWT untuk melindungi titik akhir API Anda.

Terakhir, HTTP API lebih terjangkau daripada REST API.

Melihat fitur yang menonjol, mana dari keduanya yang harus Anda pilih sepenuhnya tergantung pada kebutuhan Anda. Namun secara samar-samar, API HTTP adalah pilihan yang baik untuk aplikasi penting non-bisnis skala kecil.

Cara Membuat HTTP Proxy Gateway dan Mengintegrasikan dengan Target URI

Saatnya mengotori tangan kita.

Arahkan ke konsol AWS Anda dan cari “Gerbang API”.

target-uri1
Temukan API Gateway di konsol AWS

Mengklik Buat API akan memberi Anda berbagai jenis API yang tersedia. Klik “Bangun” di HTTP API.

target-uri2
Memilih “Bangun” di HTTP API

Masukkan nama API dan klik “Tinjau dan buat”. Alternatifnya, Anda dapat memasukkan informasi konfigurasi lain yang diperlukan tetapi abaikan untuk saat ini, karena kita akan melihat konfigurasi secara mendetail di bawah.

Ada 3 bagian untuk membuat gateway proxy yang aman:

  1. Menentukan rute
  2. Menambahkan integrasi
  3. Melampirkan pemberi kuasa

Mari kita bahas masing-masing dengan lebih detail.

Cara Menentukan Rute

Rute adalah titik akhir jalur yang sesuai dengan tindakan sumber daya atau URI target.

Dimungkinkan untuk mengirim nilai dinamis ke rute dengan menentukan variabel jalur di rute. Variabel jalur didefinisikan dengan menambahkan kurung kurawal di sekitar variabel jalur, seperti: /getmusic/{track}.

Dalam rute di atas {track} adalah variabel jalur yang dapat diganti dengan nilai apa pun.

Rute dapat memiliki sejumlah variabel jalur. Namun, penting untuk diketahui bahwa parameter kueri tidak dapat ditambahkan dalam definisi rute.

definisi rute
Tentukan rute untuk gateway proxy API

Pastikan juga untuk memilih metode yang sesuai untuk rute yang ditentukan. Untuk kesederhanaan, Anda dapat mempertimbangkan untuk menggunakan “GET”.

Cara Menambahkan Integrasi

Ini mungkin langkah paling penting dalam membuat gateway proxy.

Bagian yang menantang di sini adalah membuat pemetaan nilai dinamis yang benar antara permintaan masuk dan keluar. Cukup mengejutkan melihat bahwa tidak ada tutorial, dokumen, atau panduan yang membahas masalah ini, jadi saya harap ini membantu.

Setelah mengklik metode rute yang baru ditentukan, Anda dapat melihat detail rute di panel kanan.

Anda mungkin memperhatikan bahwa tidak ada integrasi yang melekat pada rute. Klik “Lampirkan integrasi” diikuti dengan “Buat dan lampirkan integrasi”.

lampirkan-integrasi-1
Buat dan lampirkan layar integrasi

Di jenis Integrasi, pilih “HTTP URI” karena kami bertujuan untuk membuat gateway proxy yang meneruskan permintaan ke API pihak ketiga target.

http-uri
Pilih “HTTP URI” dari opsi

Masukkan URI target Anda dan pilih metode yang sama dengan permintaan yang masuk, sehingga permintaan diteruskan dengan metode yang sesuai.

Peringatan: Di URI target, Anda seharusnya menambahkan hanya domain API dan bukan seluruh jalur dengan parameter kueri, karena ini adalah sesuatu yang akan kami buat melalui pemetaan parameter.

Misalnya, katakanlah kita ingin mendapatkan daftar lagu berdasarkan namanya.

Dalam hal ini titik akhir input Anda bisa berupa:

/getmusic/{track}

Dan berdasarkan API pihak ketiga yang Anda gunakan, URI target bisa seperti:

http://api.musixmatch.com/ws/1.1/track.search?q_track={track}

Tujuan kami adalah untuk memastikan bahwa nilai yang dikirim untuk track variabel path diganti dengan benar dengan nilai sebenarnya dalam parameter kueri dari permintaan keluar.

Anehnya, jika kita mendefinisikan URI target kita sebagai: http://api.musixmatch.com/ws/1.1/track.search?q_track={track}itu {track} variabel tidak diganti dengan nilai sebenarnya.

Alih-alih string literal, {track} dikirim apa adanya untuk nilai param kueri, mengambilkan Anda set yang sama dari hasil yang salah terlepas dari apa yang Anda minta.

Untuk menghindari jebakan ini, kami tidak menentukan jalur lengkap di URI target.

Ke depan, tambahkan bagian domain dari API, yang seharusnya http://api.musixmatch.com mempertimbangkan contoh di atas.

parameter-pemetaan-1

Seperti yang Anda lihat, di bawah bagian detail integrasi, ada aturan pemetaan parameter yang saat ini kosong. Klik “Buat” untuk mulai menambahkan aturan pemetaan.

Selanjutnya, pilih jenis pemetaan sebagai “Semua permintaan masuk” diikuti dengan “Tambahkan pemetaan baru”.

Untuk membuat aturan pemetaan, Anda perlu mengetahui tiga hal berikut:

  • apa yang harus dimodifikasi
  • bagaimana itu harus dimodifikasi
  • apa nilai yang dimodifikasi seharusnya

Apa yang harus dimodifikasi? Biasanya, semua titik akhir API akan memiliki jalur yang disufiks ke bagian domain, misalnya v1/ , yang akan berlebihan di titik akhir gateway proxy kami. Jadi kami ingin memulai dengan menimpa jalur.

Nilai adalah sesuatu yang diketik secara statis agar sesuai dengan jalur URI.

Mengambil API di atas sebagai contoh, nilainya harus:

/ws/1.1/track.search

Bagian dinamis dari URI adalah nilai trek yang merupakan parameter kueri.

Selanjutnya, kita perlu menambahkan parameter kueri yang menyimpan nilai dinamis.

Untuk melakukannya, klik “Tambahkan pemetaan baru” dan pilih querystring.<querystring_name> di parameter untuk memodifikasi diikuti dengan memilih “Tambahkan”.

Di kolom input nilai, masukkan $request.path.track sebagai {track} adalah nama variabel jalur dalam permintaan yang masuk. Lihat ini dokumentasi dari AWS untuk informasi selengkapnya tentang sintaks.

Secara keseluruhan, aturan pemetaan Anda sekarang akan terlihat seperti ini:

parameter-pemetaan-2
Aturan pemetaan parameter

Klik “Buat” dan sekarang gateway API Proxy Anda sudah siap digunakan. Hore!

Anda juga dapat menambahkan parameter kueri lain dengan menambahkan string kueri ke jalur sebagai pemetaan baru. Misalnya, kunci API biasanya dikirim sebagai parameter kueri.

Selain itu, dimungkinkan juga untuk mengirim header dan isi permintaan keluar.

Cara Melampirkan Pemberi Kuasa

Meskipun melampirkan pengotorisasi tidak wajib saat menguji gateway API Anda, sangat disarankan untuk mengamankannya dalam produksi.

Jika Anda menggunakan layanan autentikasi pihak ketiga seperti Google Authenticator atau yang serupa, gateway API HTTP menyediakan cara mudah untuk mengelola otorisasi pada rute Anda berdasarkan token JWT.

Arahkan ke halaman “Otorisasi” dari menu sebelah kiri dan klik “Buat dan lampirkan pengotorisasi”. Secara default, “Jenis penulis” dipilih sebagai JWT.

pemberi kuasa

Masukkan input yang diperlukan seperti nama, URL penerbit, dan audiens. Nilai dan format bervariasi berdasarkan layanan autentikasi yang kebetulan Anda gunakan. Misalnya, URL penerbit autentikasi Google adalah https://securetoken.google.com/<project-id>.

Membungkus

Inti dari artikel ini adalah penekanan pada pembuatan jalur menggunakan pemetaan parameter berbeda dengan mendefinisikannya secara langsung dalam rute dan mengharapkan keajaiban terjadi.

Satu kelemahan yang saya perhatikan adalah bahwa pemetaan parameter tidak berfungsi ketika ada lebih dari satu variabel jalur yang ditentukan dalam permintaan outing. Jadi, penting untuk memastikan bahwa permintaan keluar memiliki paling banyak satu parameter jalur.

Gateway API HTTP adalah cara cepat dan mudah untuk menyiapkan gateway proxy/non-proxy dengan konfigurasi minimal.

Itu saja, teman-teman! Saya harap ini membantu Anda mendapatkan pengetahuan tentang cara membuat gateway HTTP API dan membangun jalur dengan pemetaan parameter. Bagikan dengan teman dan kenalan Anda yang mungkin tertarik membaca ini.

Terus coding, terus membangun. Sampai Lain waktu.

Comments

Popular posts from this blog

4 Alasan Anda Harus Membeli Pensil Apple untuk iPad Anda

7 Cara Teratas yang Dapat Anda Gunakan Google Bard

10 Aplikasi Kesehatan Gratis Terbaik untuk Pengguna iPhone dan Apple Watch