# worker-route Worker Route is a crate designed for usage in Cloudflare Workers. ## Examples ```rust use serde::{Deserialize, Serialize}; use worker::{event, Env, Request, Response, Result, RouteContext, Router}; use worker_route::{get, Configure, Query, Service}; #[derive(Debug, Serialize, Deserialize)] struct Bar { bar: String, } #[get("/bar")] async fn bar(req: Query, _: RouteContext<()>) -> Result { Response::from_json(&req.into_inner()) } #[derive(Debug, Serialize, Deserialize)] struct Foo { foo: String, } #[get("/foo")] async fn foo(req: Query, _: RouteContext<()>) -> Result { Response::from_json(&req.into_inner()) } #[derive(Debug, Serialize, Deserialize)] struct FooBar { foo: String, bar: String, } // your function can consist of (Query, Request, RouteContext<()>) too #[get("/foo-bar")] async fn foo_bar(req: Query, _req: Request, _: RouteContext<()>) -> Result { Response::from_json(&req.into_inner()) } #[derive(Debug, Deserialize, Serialize)] struct Person { name: String, age: usize, } #[get("/person/:name/:age")] async fn person(req: Query, _: RouteContext<()>) -> Result { Response::from_json(&req.into_inner()) } fn init_routes(router: Router<'_, ()>) -> Router<'_, ()> { router .configure(bar) .configure(foo) .configure(person) .configure(foo_bar) } #[event(fetch)] pub async fn main(req: Request, env: Env, _ctx: worker::Context) -> Result { let router = Router::new(); router.service(init_routes).run(req, env).await } ``` ## Features - Add routes to handler with macro attribute - Extract query parameters or path from URL License: Apache-2.0