hurt

0.1.0-alpha.1 • Public • Published

hurt

HTTP routing with URI templates

After all of two minutes browsing npmjs.org I could not find what I was looking for, so I built it myself. How hard can it be, right?

Motivation

Not very. RFC 6570 specifies URI templates, of which there are a bunch of very nice implementations. However, at the time of writing, full featured URI template routers for express, connect or restify were hard to come by.

So what's so great about URI templates then? For one, they have a syntax to properly describe recursive paths and arguments. This makes them great for describing APIs. Actually, you might have seen them, for example in GitHubs API documentation. Also, when you're writing a RESTful API you'll often write URLs into your service's responses. Instead of hard-coding the URLs or using some other way to generate them, you can just use the router to give you a route, because if any part of your software knows which URLs are reachable, it's your router.

Usage

So what does hurt look like? Glad you asked! Let's start this of with an example:

import hurt from 'hurt';
import { Users } from './app/model';
 
const router = hurt();
 
router.get('/users/{name}', function (req, res, next) {
  const { name } = req.params;
  const user = Users.get({ name });
  res.send(200, user);
});
 
router.get('/users{?q,page}', function (req, res, next) {
  const { q, page = 0 } = req.params;
  const length = 10;
  const start = page * length;
  const users = Users.find({ q }).slice(start, length);
  res.send(200, users);
});

Just like so many other routers, except with RFC 6570 URI templates. There are some nice bonuses though. Check out the docs.

Installation

npm

npm install hurt

bower

bower install hurt

html

curl -o hurt.min.js https://github.com/jpommerening/hurt/releases/download/v0.1.0/hurt.min.js
echo '<script src="hurt.min.js"></script>' >> index.html

Package Sidebar

Install

npm i hurt

Weekly Downloads

0

Version

0.1.0-alpha.1

License

MIT

Last publish

Collaborators

  • jpommerening