Pengkomputeran Pinggir dengan Cloudflare Workers & Deno · Pelajaran

Penghalaan & Perisian Tengah

Gunakan pustaka penghalaan dan corak perisian tengah untuk menyusun serta menambah baik API Worker anda.

Pelajaran 2 daripada 311 langkah

Penghalaan & Perisian Tengah ialah pelajaran Pengkomputeran Pinggir dengan Cloudflare Workers & Deno percuma di CoddyKit. Ini ialah pelajaran 2 daripada 3. 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 Pengkomputeran Pinggir dengan Cloudflare Workers & Deno, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pengkomputeran Pinggir dengan Cloudflare Workers & Deno merangkumi sejumlah 3 pelajaran.

Asas Penghalaan API

Semasa membina API, kita memerlukan cara untuk mengarahkan permintaan masuk kepada fungsi yang betul berdasarkan laluan URL dan kaedah HTTP (GET, POST dan sebagainya). Proses ini dipanggil penghalaan.

Bayangkan ia seperti penyambut tetamu untuk API anda. Apabila permintaan diterima, router menyemak destinasinya dan menghantarnya kepada jabatan yang betul (pengendali kod anda).

Penghalaan Worker Secara Manual

Dalam Cloudflare Worker, semua permintaan masuk dikendalikan oleh pendengar peristiwa fetch. Anda boleh memeriksa URL dan kaedah permintaan secara manual untuk menentukan tindakan yang perlu dilakukan.

Walaupun sesuai untuk kes mudah, pendekatan ini cepat menjadi rumit dan sukar diurus apabila API anda berkembang.

export default {
  async fetch(request) {
    const url = new URL(request.url);
    if (url.pathname === '/hello' && request.method === 'GET') {
      return new Response('Hello from manual route!');
    }
    return new Response('Not Found', { status: 404 });
  }
}

Memperkenalkan itty-router

Untuk memudahkan penghalaan, kita menggunakan pustaka ringan. Bagi Cloudflare Workers, itty-router ialah pilihan yang popular. Pustaka ini kecil, pantas dan direka untuk pinggir.

Pustaka ini menyediakan cara yang kemas dan ekspresif untuk mentakrifkan laluan serta pengendali, lalu menjadikan kod Worker anda lebih tersusun.

Laluan GET Asas

Dengan itty-router, anda boleh mentakrifkan laluan menggunakan kaedah seperti router.get() untuk permintaan GET. Setiap laluan menerima laluan dan fungsi pengendali.

Mari kita cipta Worker ringkas yang memberikan respons kepada / dan /greet.

import { Router } from 'itty-router';

const router = Router();

router.get('/', () => new Response('Welcome to the API!'));
router.get('/greet', () => new Response('Hello there!'));

export default {
  fetch: router.handle
};

Mengendalikan Semua Kaedah HTTP

itty-router membolehkan anda mentakrifkan laluan untuk kaedah HTTP tertentu seperti .post(), .put(), .delete() dan banyak lagi.

Anda juga boleh menggunakan .all() untuk memadankan sebarang kaedah HTTP bagi laluan tertentu, yang berguna untuk perisian tengah atau pengendali umum.

import { Router } from 'itty-router';

const router = Router();

router.get('/data', () => new Response('GET data'));
router.post('/data', () => new Response('POST data', { status: 201 }));
router.all('*', () => new Response('Method Not Allowed', { status: 405 }));

export default {
  fetch: router.handle
};

Parameter Laluan Dinamik

Selalunya, anda perlu mengekstrak nilai dinamik daripada URL, seperti ID item atau nama pengguna. Nilai ini dipanggil parameter laluan.

itty-router menggunakan tanda titik bertindih (:) untuk mentakrifkan parameter dalam laluan. Nilai tersebut kemudiannya tersedia dalam objek request.params pengendali.

import { Router } from 'itty-router';

const router = Router();

router.get('/users/:id', ({ params }) => {
  return new Response(`Fetching user ${params.id}`);
});

export default {
  fetch: router.handle
};

Apakah Perisian Tengah?

Fungsi perisian tengah ialah cebisan kod yang dijalankan sebelum atau selepas pengendali laluan utama anda. Fungsi ini boleh mengubah suai permintaan, melakukan pengelogan, menyemak pengesahan atau menambah pengepala kepada respons.

Fungsi ini bertindak sebagai saluran pemprosesan, yang membolehkan anda menambah fungsi umum pada berbilang laluan tanpa menggandakan kod.

Melaksanakan Perisian Tengah Ringkas

Dengan itty-router, perisian tengah boleh ditambah pada laluan tertentu atau digunakan secara global. Fungsi perisian tengah menerima permintaan dan boleh mengembalikan respons (untuk menamatkan rantaian) atau meneruskan proses kepada pengendali seterusnya.

Mari kita tambahkan perisian tengah pengelogan ringkas yang dijalankan untuk setiap permintaan.

import { Router } from 'itty-router';

const router = Router();

const loggerMiddleware = async (request, event) => {
  console.log(`Request: ${request.method} ${request.url}`);
  // To proceed to the next handler, don't return a Response.
  // If you return a Response, the chain stops.
};

router.all('*', loggerMiddleware);
router.get('/hello', () => new Response('Hello from route!'));

export default {
  fetch: router.handle
};

Merantaikan Perisian Tengah

Anda boleh merantaikan berbilang fungsi perisian tengah. Setiap perisian tengah dilaksanakan mengikut turutan. Jika perisian tengah tidak mengembalikan respons, perisian tengah seterusnya dalam rantaian (atau pengendali laluan terakhir) akan dipanggil.

Ini membolehkan pemprosesan permintaan yang berkuasa dan modular, seperti pengesahan, penghuraian data dan pengelogan.

import { Router } from 'itty-router';

const router = Router();

const authMiddleware = async (request) => {
  if (request.headers.get('Authorization') !== 'Bearer token123') {
    return new Response('Unauthorized', { status: 401 });
  }
};

const headerMiddleware = async (request, event) => {
  // Add a custom header to the response later
  event.response = new Response('', { headers: { 'X-Powered-By': 'CoddyKit' } });
};

router.get('/secure', authMiddleware, (request) => {
  return new Response('Access granted!');
});
router.get('/info', headerMiddleware, (request) => {
  return new Response('Info page');
});

export default {
  fetch: async (request, env, ctx) => {
    const response = await router.handle(request, env, ctx);
    // Merge headers from middleware if present
    if (ctx.response && response) {
      for (let [key, value] of ctx.response.headers.entries()) {
        response.headers.set(key, value);
      }
    }
    return response;
  }
};

Semakan Penghalaan & Perisian Tengah

Pertimbangkan Cloudflare Worker yang menggunakan itty-router. Anda ingin memastikan bahawa semua permintaan ke laluan /admin/* memerlukan pengepala X-Admin-Key, dan jika pengepala itu tiada, respons 403 Dilarang dikembalikan. Laluan lain tidak sepatutnya terjejas.

Imbas Kembali: Penghalaan & Perisian Tengah

Anda telah menguasai asas penyusunan API pinggir menggunakan penghalaan dan perisian tengah!

  • Penghalaan mengarahkan permintaan kepada pengendali yang betul.
  • Pustaka seperti itty-router memudahkan takrifan laluan, termasuk parameter dinamik.
  • Fungsi perisian tengah mempertingkatkan permintaan dan respons dengan menambahkan logik umum seperti pengelogan atau pengesahan sebelum (atau selepas) pengendali utama.

Pola ini amat penting untuk membina API tanpa pelayan di pinggir yang boleh diskalakan dan mudah diselenggara.

Percuma untuk bermula

Pelajari Pengkomputeran Pinggir dengan Cloudflare Workers & Deno 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
12
Pelajaran
47

Soalan Lazim

Adakah pelajaran “Penghalaan & Perisian Tengah” percuma?

Ya — teks penuh “Penghalaan & Perisian Tengah” 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 Pengkomputeran Pinggir dengan Cloudflare Workers & Deno, tingkat taraf kepada CoddyKit PRO. Kursus Pengkomputeran Pinggir dengan Cloudflare Workers & Deno merangkumi sejumlah 3 pelajaran.

Apakah yang akan saya pelajari dalam “Penghalaan & Perisian Tengah”?

Gunakan pustaka penghalaan dan corak perisian tengah untuk menyusun serta menambah baik API Worker anda. Anda berlatih Pengkomputeran Pinggir dengan Cloudflare Workers & Deno 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 Pengkomputeran Pinggir dengan Cloudflare Workers & Deno?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Pengkomputeran Pinggir dengan Cloudflare Workers & Deno 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 2 daripada 3.

Berapa lamakah pelajaran “Penghalaan & Perisian Tengah” 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 Pengkomputeran Pinggir dengan Cloudflare Workers & Deno ini?

Ya. Setiap pelajaran Pengkomputeran Pinggir dengan Cloudflare Workers & Deno 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. Mereka Bentuk API RESTful
  2. Penghalaan & Perisian Tengah
  3. Pengesahan dan Pengendalian Ralat
← Kembali ke Pengkomputeran Pinggir dengan Cloudflare Workers & Deno