An open API service indexing awesome lists of open source software.

https://github.com/denostack/dewy

Dewy(dǝw-y) is a minimalist HTTP server framework with a small codebase, utilizing built-in URLPattern for efficient routing.
https://github.com/denostack/dewy

deno http-server restful urlpattern web

Last synced: 22 days ago
JSON representation

Dewy(dǝw-y) is a minimalist HTTP server framework with a small codebase, utilizing built-in URLPattern for efficient routing.

Awesome Lists containing this project

README

          

# dewy


Build
Coverage
License
Language Typescript


deno.land/x/dewy
Version
Downloads

Dewy(dǝw-y) is a minimalist HTTP server framework with a small codebase,
utilizing built-in URLPattern for efficient routing.

## Usage

### with Deno

```ts
import { Router } from "https://deno.land/x/dewy/mod.ts";

const router = new Router();

router.get("/", () => {
return Response.json({
message: "Hello World",
});
});
router.get("/articles/:id", ({ match }) => {
return Response.json({
id: match.pathname.groups.id,
});
});

Deno.serve(router.dispatch.bind(router), {
port: 8080,
});
```

```bash
deno run --allow-net --unstable server.ts
```

In addition to using `Deno.serve`, you can also use the HTTP server from the
standard library by importing `https://deno.land/std@0.167.0/http/server.ts`.

Here is an example:

```ts
import { serve } from "https://deno.land/std@0.167.0/http/server.ts";

/* ... */

serve(router.dispatch.bind(router), {
port: 8080,
});
```

Using the HTTP server from the standard library allows you to deploy your
application to a Deno Deploy environment.

### with NPM

```bash
npm install dewy
```

## Middlewares

**CORS**

The cors middleware from dewy allows you to easily add CORS (Cross-Origin
Resource Sharing) support to your routes.

```ts
import { cors } from "https://deno.land/x/dewy/middlewares/cors.ts";

router.addRoute({
method: ["GET", "POST", "OPTIONS", "CUSTOMMETHOD"],
pattern: "/cors",
middleware: cors({
allowMethods: ["POST", "CUSTOMMETHOD"],
}),
}, () => {
return Response.json({ success: true });
});
```

## See Also

- [rutt](https://github.com/denosaurs/rutt) Rutt is a http router for deno, fast
route matching with `URLPatterns`.