http-handler-response
TypeScript icon, indicating that this package has built-in type declarations

0.10.0 • Public • Published

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

  # 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 standard.

Parameters

  // 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

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

{
  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

  // 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

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

{
  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

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

Package Sidebar

Install

npm i http-handler-response

Weekly Downloads

4

Version

0.10.0

License

MIT

Unpacked Size

51.3 kB

Total Files

23

Last publish

Collaborators

  • hiukky