http-response-client
v1.1.0
Published
Package to format a service response and handle errors
Downloads
32
Maintainers
Readme
http-response-client
Package to format service request in Moodle web service format
Table of Contents
Installation
This is a Node.js module available through the npm registry.
Before installing, download and install Node.js.
If this is a brand new project, make sure to create a package.json
first with
the npm init
command.
Installation is done using the
npm install
command:
$ npm install http-response-client
Examples
Create an http error
Existent http error
If you want use any http error that exists in the HTTP code responses you can use the method httpErrors.${error}
.
import responseClient from "http-response-client";
const error = new responseClient.errors.NotFound();
Adding a custom message
If you want add a custom message to the error you can pass the message as a parameter to the class.
import responseClient from "http-response-client";
const error = new responseClient.errors.NotFound({msg:"Custom message"});
Create a custom error
If you want create a custom error you can use the function createError
and pass the status code, name and the message as parameters.
import responseClient from "http-response-client";
const error = responseClient.createError(404, {name: "CustomName", msg: "Custom message" });
Verify if an error is an http error
If you want verify if an error is an http error you can use the function isHttpError
and pass the error as a parameter.
import responseClient from "http-response-client";
const error = new responseClient.errors.NotFound();
const isHttpError = responseClient.isHttpError(error);
Using middleware for express
If you want use the middleware for express you can use the function middlewares
and pass the error as a parameter and response.
import responseClient from "http-response-client";
this.app.use((err: Error, req: Request, res: Response, next: NextFunction): void => {
responseClient.middlewares.errorCatcher(err,res);
});
Docs
HTTP Code Responses List
| Code | Name | Description | |------|------|-------------| | 300 | MultipleChoice | Indica múltiples opciones para el recurso que el cliente puede seguir. | | 301 | MovedPermanently | Este y todos los futuros pedidos deben dirigirse a la URI dada. | | 302 | Found | El recurso se encuentra temporalmente en una URI diferente. | | 303 | SeeOther | La respuesta a la solicitud se puede encontrar bajo otra URI utilizando el método GET. | | 304 | NotModified | El recurso no se ha modificado desde la última petición. | | 305 | UseProxy | Debe accederse al recurso solicitado a través del proxy proporcionado por la ubicación del campo de encabezado. | | 307 | TemporaryRedirect | El recurso se encuentra temporalmente en una URI diferente, pero futuras solicitudes aún deben usar la URI original. | | 308 | PermanentRedirect | Este y todos los futuros pedidos deben dirigirse a la URI dada, que es idéntica a la de Moved Permanently (301), pero con garantía de que el método y el cuerpo no cambiarán durante la redirección. | | 400 | BadRequest | La solicitud no pudo ser entendida por el servidor debido a una sintaxis malformada. | | 401 | Unauthorized | La solicitud requiere autenticación del usuario. | | 402 | PaymentRequired | Reservado para uso futuro. | | 403 | Forbidden | El servidor entendió la solicitud, pero se niega a cumplirla. | | 404 | NotFound | El servidor no encontró nada que coincida con la URI de la solicitud. | | 405 | MethodNotAllowed | El método especificado en la solicitud no está permitido para el recurso identificado por la URI de la solicitud. | | 406 | NotAcceptable | El recurso identificado por la solicitud sólo es capaz de generar respuestas con características de contenido no aceptables según los encabezados de aceptación enviados en la solicitud. | | 407 | ProxyAuthenticationRequired | La solicitud requiere autenticación del usuario a través de un proxy. | | 408 | RequestTimeout | El cliente no produjo una solicitud dentro del tiempo que el servidor estaba preparado para esperar. | | 409 | Conflict | La solicitud no pudo completarse debido a un conflicto con el estado actual del recurso. | | 410 | Gone | El recurso solicitado ya no está disponible en el servidor y no hay ninguna dirección de reenvío conocida. | | 411 | LengthRequired | El servidor se niega a aceptar la solicitud sin un encabezado de longitud de contenido definido. | | 412 | PreconditionFailed | El servidor no cumple con una de las precondiciones que el solicitante puso en los campos de encabezado de la solicitud. | | 413 | PayloadTooLarge | La entidad de solicitud es más grande de lo que el servidor está dispuesto o puede procesar. | | 414 | UriTooLong | La URI proporcionada era demasiado larga para que el servidor la procesara. | | 415 | UnsupportedMediaType | La entidad tiene un tipo de medio que el servidor o recurso no soporta. | | 416 | RequestedRangeNotSatisfiable | Ninguna parte del rango especificado en el encabezado Range está disponible para el recurso solicitado. | | 417 | ExpectationFailed | El servidor no puede cumplir con las expectativas indicadas en el encabezado Expect de la solicitud. | | 418 | ImATeapot| Este código fue definido en 1998 como una broma del Día de los Inocentes, en RFC2324, Hyper Text Coffee Pot Control Protocol, y no se espera que sea implementado por servidores HTTP reales. | 421 | MisdirectedRequest | La solicitud fue dirigida a un servidor que no es capaz de producir una respuesta. | | 422 | UnprocessableEntity | La entidad de solicitud está bien formada pero fue imposible seguir las instrucciones contenidas en ella. | | 423 | Locked | El recurso al que se está teniendo acceso está bloqueado. | | 424 | FailedDependency | La solicitud falló debido a un fallo en una solicitud previa. | | 426 | UpgradeRequired | El cliente debe cambiar a un protocolo diferente. | | 428 | PreconditionRequired | El servidor requiere que la petición del cliente sea condicional. | | 429 | TooManyRequests | El usuario ha enviado demasiadas solicitudes en un periodo de tiempo dado. | | 431 | RequestHeaderFieldsTooLarge | El servidor no está dispuesto a procesar la solicitud porque uno o más campos de encabezado son demasiado grandes. | | 451 | UnavailableForLegalReasons | El servidor no puede o no procesará la solicitud debido a un conflicto legal con el acceso al recurso. | | 500 | InternalServerError | Un error genérico, dado cuando se produjo una condición inesperada y no hay una especificación más precisa. | | 501 | NotImplemented | El servidor no reconoce el método de solicitud, o le falta la capacidad para cumplir la solicitud. | | 502 | BadGateway | Mientras actuaba como gateway o proxy, el servidor recibió una respuesta inválida del servidor aguas arriba al intentar cumplir la solicitud. | | 503 | ServiceUnavailable | El servidor no puede manejar la solicitud (porque está sobrecargado o en mantenimiento). Generalmente, este es un estado temporal. | | 504 | GatewayTimeout | Mientras actuaba como gateway o proxy, el servidor no recibió una respuesta a tiempo del servidor aguas arriba al intentar cumplir la solicitud. | | 505 | HttpVersionNotSupported | El servidor no soporta la versión del protocolo HTTP utilizada en la solicitud. | | 506 | VariantAlsoNegotiates | La negociación de contenido para la representación del recurso resulta en una referencia circular. | | 507 | InsufficientStorage | El servidor es incapaz de almacenar la representación necesaria para completar la solicitud. | | 508 | LoopDetected | El servidor detectó un bucle infinito mientras procesaba una solicitud con "Depth: infinity". Esto se proporciona para compatibilidad con antiguos clientes WebDAV que no soportan el encabezado Depth en "If" para "copy" y "move" o para clientes que crean ciclos de referencias infinitas. | 510 | NotExtended | Se requiere más extensión para cumplir con la solicitud. | | 511 | NetworkAuthenticationRequired | El cliente necesita autenticarse para obtener acceso a la red. |
Issues
Looking to contribute? Look for the label.
🐛 Bugs
Please file an issue for bugs, missing documentation, or unexpected behavior.
💡 Feature Requests
Please file an issue to suggest new features. Vote on feature requests by adding a 👍. This helps maintainers prioritize what to work on.