Kem Intensif Pembangunan Backend Node.js · Pelajaran

Melaksanakan Gerbang API

Reka bentuk dan sediakan Gerbang API sebagai titik masuk tunggal untuk permintaan klien kepada perkhidmatan mikro anda.

Pelajaran 3 daripada 411 langkah

Melaksanakan Gerbang API ialah pelajaran Kem Intensif Pembangunan Backend Node.js percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Kem Intensif Pembangunan Backend Node.js, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kem Intensif Pembangunan Backend Node.js merangkumi sejumlah 4 pelajaran.

Gerbang API: Pintu Hadapan

Dalam seni bina perkhidmatan mikro, klien sering perlu berinteraksi dengan banyak perkhidmatan yang berbeza. Gerbang API bertindak sebagai titik masuk tunggal dan seragam untuk semua permintaan klien.

Anggaplah ia sebagai kaunter hadapan sebuah hotel besar. Daripada tetamu perlu mencari bilik tertentu (perkhidmatan mikro) sendiri, mereka pergi ke kaunter hadapan yang mengarahkan mereka ke tempat yang betul dan mengendalikan permintaan umum.

Melaksanakan Gerbang API — ilustrasi 1

Mengapa Menggunakan Gerbang API?

Gerbang API menyelesaikan beberapa cabaran yang timbul apabila menggunakan perkhidmatan mikro:

  • Memudahkan Klien: Klien hanya perlu mengetahui satu titik akhir (gerbang) dan bukannya banyak URL perkhidmatan mikro.
  • Penghalaan Permintaan: Mengarahkan permintaan masuk kepada perkhidmatan bahagian belakang yang betul.
  • Keperluan Umum: Mengendalikan keperluan merentas komponen seperti pengesahan, pengehad kadar dan pengelogan pada satu titik.
  • Pengagregatan Perkhidmatan: Boleh menggabungkan respons daripada berbilang perkhidmatan menjadi satu respons yang mesra klien.

Gerbang berbanding Pengimbang Beban

Gerbang API mudah dikelirukan dengan Pengimbang Beban, tetapi kedua-duanya mempunyai tujuan yang berbeza:

  • Pengimbang Beban: Beroperasi pada lapisan rangkaian (Lapisan 4) atau lapisan aplikasi (Lapisan 7) untuk mengagihkan trafik merentas berbilang instance perkhidmatan yang sama demi ketersediaan tinggi dan prestasi.
  • Gerbang API: Beroperasi pada lapisan aplikasi (Lapisan 7) dan menumpukan pada keperluan khusus API. Gerbang ini menghalakan permintaan kepada perkhidmatan yang berbeza serta boleh melakukan transformasi atau pemeriksaan keselamatan.

Kedua-duanya sering berfungsi bersama, dengan pengimbang beban berada di hadapan Gerbang API.

Tanggungjawab Utama Gerbang

Gerbang API melaksanakan beberapa peranan penting:

  • Penghalaan Permintaan: Memetakan laluan API tertentu (contohnya, /users) kepada perkhidmatan mikro yang sesuai.
  • Pengesahan & Keizinan: Mengesahkan identiti dan kebenaran pengguna sebelum memajukan permintaan.
  • Pengehadan Kadar: Mengawal bilangan permintaan yang boleh dibuat oleh klien dalam tempoh tertentu.
  • Penyimpanan Cache: Menyimpan data yang kerap dicapai untuk mengurangkan beban pada perkhidmatan bahagian belakang dan mempercepatkan masa respons.
  • Pengelogan & Pemantauan: Memusatkan log bagi semua permintaan masuk dan respons keluar.

Membina Gerbang Ringkas

Anda boleh membina Gerbang API tersuai menggunakan Node.js dan rangka kerja seperti Express.js. Pustaka yang popular untuk memproksikan permintaan HTTP dalam Express ialah http-proxy-middleware.

Pustaka ini memudahkan pemajuan permintaan daripada gerbang anda kepada perkhidmatan mikro bahagian belakang, dengan bertindak sebagai proksi songsang.

Persediaan Proksi Asas

Mari sediakan pelayan Express.js ringkas yang bertindak sebagai proksi. Gerbang ini akan mendengar pada port 3000 dan memajukan semua permintaan yang bermula dengan /api kepada perkhidmatan mikro 'users' olok-olok pada port 3001.

Ingat, untuk kefungsian penuh, anda memerlukan perkhidmatan mikro sebenar yang berjalan pada http://localhost:3001.

const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');

const app = express();
const GATEWAY_PORT = 3000;

// Proxy all requests starting with /api to the users microservice
app.use(
  '/api',
  createProxyMiddleware({
    target: 'http://localhost:3001', // Target URL of your users microservice
    changeOrigin: true, // Needed for virtual hosted sites
    logLevel: 'debug' // Optional: for seeing proxy activity in console
  })
);

// Simple root route for gateway status
app.get('/', (req, res) => {
  res.send('API Gateway is running. Try /api/users (if microservice is active).');
});

app.listen(GATEWAY_PORT, () => {
  console.log(`API Gateway listening on port ${GATEWAY_PORT}`);
  console.log('Proxying /api to http://localhost:3001');
});

Penghalaan kepada Berbilang Perkhidmatan

Kekuatan Gerbang API terletak pada keupayaannya untuk menghalakan permintaan kepada perkhidmatan mikro yang berbeza berdasarkan laluan permintaan, kaedah HTTP atau kriteria lain.

Anda boleh mentakrifkan berbilang peraturan proksi, setiap satunya menunjuk kepada perkhidmatan bahagian belakang yang berbeza. Contohnya, /users pergi ke perkhidmatan pengguna, manakala /products pergi ke perkhidmatan produk.

Contoh Penghalaan Berbilang Perkhidmatan

Di sini, kita melanjutkan gerbang kita untuk menghalakan permintaan bagi /users kepada 'users-service' pada port 3001 dan permintaan bagi /products kepada 'products-service' pada port 3002.

Pilihan pathRewrite adalah penting: pilihan ini membuang awalan laluan (contohnya, /users) sebelum memajukan permintaan kepada perkhidmatan sasaran.

const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');

const app = express();
const GATEWAY_PORT = 3000;

// Proxy for user-related requests
app.use(
  '/users',
  createProxyMiddleware({
    target: 'http://localhost:3001', // Users Microservice URL
    changeOrigin: true,
    pathRewrite: { '^/users': '' }, // Remove /users prefix
    logLevel: 'debug'
  })
);

// Proxy for product-related requests
app.use(
  '/products',
  createProxyMiddleware({
    target: 'http://localhost:3002', // Products Microservice URL
    changeOrigin: true,
    pathRewrite: { '^/products': '' }, // Remove /products prefix
    logLevel: 'debug'
  })
);

app.get('/', (req, res) => {
  res.send('API Gateway is running. Try /users or /products (if microservices are active).');
});

app.listen(GATEWAY_PORT, () => {
  console.log(`API Gateway listening on port ${GATEWAY_PORT}`);
  console.log('Proxying /users to http://localhost:3001');
  console.log('Proxying /products to http://localhost:3002');
});

Perisian Tengah Berpusat untuk Gerbang

Salah satu kelebihan terbesar Gerbang API ialah keupayaan untuk menggunakan perisian tengah bagi keperluan umum sebelum permintaan sampai kepada perkhidmatan mikro anda.

Anda boleh melaksanakan fungsi perisian tengah Express secara global atau untuk laluan tertentu dalam gerbang anda bagi mengendalikan tugas seperti:

  • Pengesahan: Mengesahkan JWT atau token sesi.
  • Perekodan: Merekod setiap permintaan yang masuk.
  • Pengehadan Kadar: Mencegah penyalahgunaan dengan mengehadkan kekerapan permintaan.
  • Pengesahan Input: Melakukan pengesahan asas sebelum pemajuan.

Semakan Pantas tentang Gerbang

Gerbang API ialah komponen penting dalam persediaan perkhidmatan mikro. Mari uji pemahaman anda tentang tujuan utamanya.

Ringkasan Gerbang

Anda telah mempelajari tentang Gerbang API, kepentingannya dalam perkhidmatan mikro dan cara melaksanakan gerbang asas menggunakan Express.js serta http-proxy-middleware.

Perkara penting:

  • Gerbang API memudahkan interaksi pelanggan dengan menyediakan satu titik kemasukan.
  • Gerbang ini mengendalikan penghalaan, pengesahan, pengehad kadar dan keperluan rentas komponen yang lain.
  • Express.js bersama http-proxy-middleware ialah cara yang fleksibel untuk membina gerbang tersuai.

Penguasaan Gerbang API penting untuk membina perkhidmatan mikro yang kukuh dan boleh diskalakan!

Percuma untuk bermula

Pelajari JavaScript dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
22
Pelajaran
92

Soalan Lazim

Adakah pelajaran “Melaksanakan Gerbang API” percuma?

Ya — teks penuh “Melaksanakan Gerbang API” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Kem Intensif Pembangunan Backend Node.js, tingkat taraf kepada CoddyKit PRO. Kursus Kem Intensif Pembangunan Backend Node.js merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Melaksanakan Gerbang API”?

Reka bentuk dan sediakan Gerbang API sebagai titik masuk tunggal untuk permintaan klien kepada perkhidmatan mikro anda. Anda berlatih Kem Intensif Pembangunan Backend Node.js menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Kem Intensif Pembangunan Backend Node.js?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Kem Intensif Pembangunan Backend Node.js di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “Melaksanakan Gerbang API” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Kem Intensif Pembangunan Backend Node.js ini?

Ya. Setiap pelajaran Kem Intensif Pembangunan Backend Node.js menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Pengenalan kepada Seni Bina Perkhidmatan Mikro
  2. Membangunkan Perkhidmatan Mikro Node.js
  3. Melaksanakan Gerbang API
  4. Komunikasi Antara Perkhidmatan dengan Baris Gilir Mesej
← Kembali ke Kem Intensif Pembangunan Backend Node.js