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

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

Awesome Lists containing this project

README

          

http-handler-response



Build


GitHub stars


GitHub forks


GitHub issues


GitHub license


NPM


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)
}
}
}
```