# Handle each HTTP method

> Declare routes for GET, POST, PUT, PATCH and DELETE and read the method from $.method.

Framework: total5
Product: Total.js 5 (total5@0.0.19)
Language: en
Content-SHA256: 99c1b67162ea56e00956e7570e82728a0375c0733a8a1aa59559d50cc05ce85d
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: total5-installed@total5@0.0.19
Review: not-recorded

The first word of a route is the HTTP method: `GET`, `POST`, `PUT`, `PATCH`, `DELETE`. The same URL can have a different handler for each method, and `$.method` tells a shared handler which one was used.

```js controllers/items.js
exports.install = function() {
	ROUTE('GET /items/', list);
	ROUTE('POST /items/', create);
	ROUTE('PUT /items/', replace);
	ROUTE('PATCH /items/', change);
	ROUTE('DELETE /items/', remove);
};

function list($) {
	$.json({ action: 'list', method: $.method });
}

function create($) {
	$.json({ action: 'create', method: $.method });
}

function replace($) {
	$.json({ action: 'replace', method: $.method });
}

function change($) {
	$.json({ action: 'change', method: $.method });
}

function remove($) {
	$.json({ action: 'remove', method: $.method });
}
```
