Menjelajahi gateway API
Solusi Anda mungkin berisi beberapa layanan front-end dan back-end. Dalam skenario ini, bagaimana klien tahu endpoint apa yang harus dihubungi? Apa yang terjadi jika layanan baru diperkenalkan, atau layanan yang ada direfaktor? Bagaimana layanan menangani penghentian SSL, autentikasi, dan masalah lainnya?
Gateway API Management (juga disebut data plane atau runtime) adalah komponen layanan yang bertanggung jawab untuk memproksi permintaan API, menerapkan kebijakan, dan mengumpulkan telemetri.
Gateway API berada di antara klien dan layanan. Ini bertindak sebagai proksi terbalik, permintaan perutean dari klien ke layanan. Gateway API juga dapat melakukan berbagai tugas lintas sektor seperti autentikasi, penghentian SSL, dan pembatasan tarif. Jika Anda tidak menyebarkan gateway, klien harus mengirim permintaan langsung ke layanan back-end. Namun, ada beberapa masalah potensial dengan mengekspos layanan langsung ke klien:
- Hal tersebut dapat menghasilkan kode klien yang kompleks. Klien harus melacak beberapa endpoint, dan menangani kegagalan dengan cara yang tangguh.
- Ini menciptakan sambungan antara klien dan backend. Klien perlu tahu cara layanan individu diurai. Hal tersebut membuat lebih sulit untuk mempertahankan klien dan juga lebih sulit untuk merefaktor layanan.
- Satu operasi mungkin memerlukan panggilan ke beberapa layanan.
- Setiap layanan yang menghadap publik harus menangani masalah seperti autentikasi, SSL, dan pembatasan tarif klien.
- Layanan harus mengekspos protokol yang mudah digunakan klien seperti HTTP atau WebSocket. Ini membatasi pilihan protokol komunikasi.
- Layanan dengan endpoint publik adalah permukaan serangan potensial, dan harus diperketat.
Gateway membantu mengatasi masalah ini dengan memisahkan klien dari layanan.
Terkelola dan dihost sendiri
API Management menawarkan gateway terkelola dan dihost sendiri:
Terkelola - Gateway terkelola adalah komponen gateway default yang disebarkan di Azure untuk setiap instans API Management di setiap tingkat layanan. Dengan gateway terkelola, semua lalu lintas API mengalir melalui Azure terlepas dari tempat backend yang mengimplementasikan API dihosting.
Dihost sendiri - Gateway yang dihost sendiri adalah versi opsional yang dikontainerisasi dari gateway terkelola default. Ini berguna untuk skenario hibrid dan multicloud di mana ada persyaratan untuk menjalankan gateway dari Azure di lingkungan yang sama tempat backend API dihosting. Gateway yang dihosting sendiri memungkinkan pelanggan dengan infrastruktur TI hibrid untuk mengelola API yang dihosting di lokasi dan di seluruh cloud dari satu layanan API Management di Azure.