https://github.com/klaby/http-handler-response
📨 A simple response handler for HTTP requests
https://github.com/klaby/http-handler-response
adonisjs api expressjs http http-status-code koajs nodejs rfc7807
Last synced: 3 months ago
JSON representation
📨 A simple response handler for HTTP requests
- Host: GitHub
- URL: https://github.com/klaby/http-handler-response
- Owner: klaby
- License: mit
- Archived: true
- Created: 2020-03-07T01:24:41.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-11-28T13:44:04.000Z (about 5 years ago)
- Last Synced: 2025-08-09T08:19:40.386Z (5 months ago)
- Topics: adonisjs, api, expressjs, http, http-status-code, koajs, nodejs, rfc7807
- Language: TypeScript
- Homepage:
- Size: 651 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
http-handler-response
Built with ❤︎ by Hiukky
A simple handler to standardize and handle HTTP request errors and responses in API's.
## Installation
```sh
# Using NPM
npm i http-handler-response
# Using YARN
yarn add http-handler-response
```
## Using
The http-handler-response provides three main functions. `createException`, `createResponse` and `handlerError`.
### createException
The `createException` function is the function responsible for formulating your return messages in unsuccessful requests. It follows the [RFC-7807](https://tools.ietf.org/html/rfc7807) standard.
#### Parameters
```js
// Object with response specifications
payload: {
code: number | string, // HTTP status code 4xx to 5xx
type?: string, // URL for a document describing the error condition
title?: string, // Short and descriptive information
detail: string, // Legible error description
instance?: string, // URI exclusive for or specific error
}
```
#### Example
```js
import { createException, handlerError } from 'http-handler-response'
import User from 'models/User'
class UserController {
async index(request, response) {
try {
const user = await User.find(1)
if (!user)
createException({
code: 404, // 404 or '404 - Not Found'
detail: 'The user informed is not registered.',
instance: '/users/1',
type: 'https://example.com/docs/users',
})
return user
} catch (error) {
handlerError(response, error)
}
}
}
```
#### Response
```js
{
status: 404,
title: 'Not found',
detail: 'The user informed is not registered.',
instance: '/users/1',
type: 'https://example.com/docs/users',
}
```
### createResponse
The `createResponse` function is the function responsible for formulating your return messages in successful requisitions.
#### Parameters
```js
// HTTP Response Object
response: object
// Object with response specifications
payload: {
code: number | string, // HTTP status code 1xx to 3xx
title?: string, // Short and descriptive information
message?: string, // Legible action response
instance: string, // URI exclusive for or specific error
data: object // Back Data
}
```
#### Example
```js
import { createResponse, handlerError } from 'http-handler-response'
import User from 'models/User'
class UserController {
async store(request, response) {
try {
const data = request.only(['name', 'email'])
const user = new User()
user.name = data.name
user.email = data.email
await user.save()
return createResponse(response, {
code: 201, // 201 or '201 - Created'
message: 'Successful registered user.',
data: user,
}),
} catch (error) {
handlerError(response, error)
}
}
}
```
#### Response
```js
{
status: 201,
title: 'Created'
message: 'Successful registered user.'
data: {
id: 1,
name: 'User',
email: 'user@email.com'
}
}
```
### handlerError
http-handler-response has custom handlers for handling errors for various web frameworks, such as `AdonisJs`,` Express` and `KoaJs`. You can use it within your `catch` block on each call or create custom middleware responsible for handling exceptions globally in the HTTP context.
#### Example
```js
import { handlerError } from 'http-handler-response'
import User from 'models/User'
class UserController {
async store(request, response) {
try {
// Your code..
} catch (error) {
handlerError(response, error)
}
}
}
```