Reititys ja middleware
Hyödynnä reitityskirjastoja ja middleware-malleja Worker-API:n järjestämiseen ja parantamiseen
Reititys ja middleware on ilmainen Reunalaskenta Cloudflare Workersilla ja Denolla-oppitunti CoddyKitissä. Tämä on oppitunti 2/3. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Reunalaskenta Cloudflare Workersilla ja Denolla-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Reunalaskenta Cloudflare Workersilla ja Denolla-kurssilla on yhteensä 3 oppituntia.
API-reitityksen perusteet
API:ja rakennettaessa tarvitsemme tavan ohjata saapuvat pyynnöt oikeisiin funktioihin URL-polun ja HTTP-menetelmän (GET, POST jne.) perusteella. Tätä prosessia kutsutaan reititykseksi.
Ajattele sitä API:n vastaanottovirkailijana. Kun pyyntö saapuu, reititin tarkistaa sen määränpään ja ohjaa sen oikealle osastolle (koodisi käsittelijälle).
Työntekijän reititys manuaalisesti
Cloudflare Workerissa kaikki saapuvat pyynnöt käsitellään fetch-tapahtumankuuntelijassa. Voit tarkistaa pyynnön URL-osoitteen ja menetelmän manuaalisesti ja päättää niiden perusteella, mitä tehdään.
Tämä toimii yksinkertaisissa tapauksissa, mutta API:n kasvaessa lähestymistavasta tulee nopeasti monimutkainen ja vaikeasti hallittava.
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 });
}
}itty-routerin esittely
Reitityksen yksinkertaistamiseksi käytämme kevyitä kirjastoja. Cloudflare Workers -ympäristössä suosittu valinta on itty-router. Se on pienikokoinen, nopea ja suunniteltu reunalaskentaan.
Se tarjoaa selkeän ja ilmaisuvoimaisen tavan määrittää reitit ja käsittelijät, mikä tekee Worker-koodistasi paljon järjestelmällisempää.
GET-reittien perusteet
itty-router-kirjastolla voit määrittää reittejä router.get()-metodin kaltaisilla metodeilla GET-pyyntöjä varten. Jokainen reitti sisältää polun ja käsittelijäfunktion.
Luodaan yksinkertainen Worker, joka vastaa polkuihin / ja /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
};Kaikkien HTTP-menetelmien käsittely
itty-router mahdollistaa reittien määrittämisen tietyille HTTP-menetelmille, kuten .post()-, .put()- ja .delete()-metodeille sekä muille menetelmille.
Voit myös käyttää .all()-metodia täsmäämään tietyn polun kaikkiin HTTP-menetelmiin. Se on hyödyllinen väliohjelmistolle tai yleisille käsittelijöille.
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
};Dynaamiset reittiparametrit
Usein URL-osoitteesta täytyy poimia dynaamisia arvoja, kuten kohteen tunnus tai käyttäjänimi. Näitä kutsutaan reittiparametreiksi.
itty-router käyttää kaksoispistettä (:) parametrien määrittämiseen reittipolussa. Arvot ovat sen jälkeen käytettävissä käsittelijän request.params-objektissa.
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
};Mitä väliohjelmisto on?
Väliohjelmistot ovat koodinpätkiä, jotka suoritetaan pääasiallisen reittikäsittelijän ennen tai jälkeen. Ne voivat muokata pyyntöä, tehdä lokikirjauksia, tarkistaa todennuksen tai lisätä otsakkeita vastaukseen.
Ne toimivat käsittelyputken tavoin ja mahdollistavat yhteisten toiminnallisuuksien lisäämisen useille reiteille ilman koodin toistamista.
Yksinkertaisen väliohjelmiston toteuttaminen
itty-router-kirjastolla väliohjelmistoja voidaan lisätä tietyille reiteille tai maailmanlaajuisesti. Väliohjelmistofunktio vastaanottaa pyynnön ja voi palauttaa vastauksen (jolloin ketju päättyy) tai jatkaa seuraavaan käsittelijään.
Lisätään yksinkertainen lokikirjaava väliohjelmisto, joka suoritetaan jokaiselle pyynnölle.
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
};Väliohjelmistojen ketjuttaminen
Voit ketjuttaa useita väliohjelmistoja. Kukin väliohjelmisto suoritetaan järjestyksessä. Jos väliohjelmisto ei palauta vastausta, seuraava ketjun väliohjelmisto (tai lopullinen reittikäsittelijä) kutsutaan.
Tämä mahdollistaa tehokkaan ja modulaarisen pyyntöjen käsittelyn, kuten todennuksen, tietojen jäsentämisen ja lokikirjauksen.
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;
}
};Reitityksen ja väliohjelmiston tarkistus
Oletetaan, että Cloudflare Worker käyttää itty-router-kirjastoa. Haluat varmistaa, että kaikkiin /admin/*-polkuihin kohdistuvat pyynnöt edellyttävät X-Admin-Key-otsaketta ja että puuttuvan otsakkeen tapauksessa palautetaan 403 Forbidden -vastaus. Tämä ei saa vaikuttaa muihin polkuihin.
Kertaus: reititys ja väliohjelmisto
Hallitset nyt reunan API:n järjestämisen perusteet reitityksen ja väliohjelmistojen avulla!
- Reititys ohjaa pyynnöt oikeille käsittelijöille.
itty-router-kirjaston kaltaiset kirjastot helpottavat reittien määrittämistä, myös dynaamisten parametrien käyttöä.- Väliohjelmistot laajentavat pyyntöjä ja vastauksia lisäämällä yhteistä logiikkaa, kuten lokikirjausta tai todennusta, ennen pääkäsittelijää tai sen jälkeen.
Nämä mallit ovat keskeisiä skaalautuvien ja helposti ylläpidettävien reunalla toimivien palvelimettomien API:en rakentamisessa.
Opi Reunalaskenta Cloudflare Workersilla ja Denolla tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 12
- Oppitunnit
- 47
Usein kysytyt kysymykset
Onko oppitunti ”Reititys ja middleware” ilmainen?
Kyllä – oppitunnin ”Reititys ja middleware” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Reunalaskenta Cloudflare Workersilla ja Denolla-kurssin, päivitä CoddyKit PROhon. Reunalaskenta Cloudflare Workersilla ja Denolla-kurssilla on yhteensä 3 oppituntia.
Mitä opin oppitunnilla ”Reititys ja middleware”?
Hyödynnä reitityskirjastoja ja middleware-malleja Worker-API:n järjestämiseen ja parantamiseen Harjoittelet Reunalaskenta Cloudflare Workersilla ja Denolla-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Reunalaskenta Cloudflare Workersilla ja Denolla-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Reunalaskenta Cloudflare Workersilla ja Denolla-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/3.
Kuinka kauan ”Reititys ja middleware”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Reunalaskenta Cloudflare Workersilla ja Denolla-oppitunnilla?
Kyllä. Jokainen Reunalaskenta Cloudflare Workersilla ja Denolla-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- RESTful-rajapintojen suunnittelu
- Reititys ja middleware
- Validointi ja virheenkäsittely