DEV Community

Cover image for HTTP Response Status Codes
Kater Akeren
Kater Akeren

Posted on • Edited on

HTTP Response Status Codes

Overview

Without a library that provides you with all the HTTP status codes in a single box, creating APIs has never been simple. Because of this, I developed an appealing, adaptable, and abstracted package that includes all HTTP API status response codes that are listed in Request for Comments (RFC).

Usage


const express = require('express');
const { Response } = require('http-status-codez');
const User = require('./models/user');

const app = express();

app.get('/api/v1/users', catchAsync(async (req, res, next) => {
  const users = await User.find();

  res.status(Response.HTTP_OK).json({
    status: 'success',
    results: users.length,
    data: {
      users,
    },
  });

}));

app.get('/api/v1/users/:id', catchAsync(async (req, res, next) => {
  const user = await User.findById(req.params.id);

  if (!user) {
    return next(
      new AppError('User not found with that ID', Response.HTTP_NOT_FOUND);
    );
  }

  res.status(Response.HTTP_OK).json({
    status: 'success',
    data: {
      user,
    },
  });
Enter fullscreen mode Exit fullscreen mode

Implementation Description

Code Instance Properties Phrase
100 HTTP_CONTINUE Continue
101 HTTP_SWITCHING_PROTOCOLS Switching Protocols
102 HTTP_PROCESSING Processing
103 HTTP_EARLY_HINTS Early Hints
200 HTTP_OK OK
201 HTTP_CREATED Created
202 HTTP_ACCEPTED Accepted
203 HTTP_NON_AUTHORITATIVE_INFORMATION Non Authoritative Information
204 HTTP_NO_CONTENT No Content
205 HTTP_RESET_CONTENT Reset Content
206 HTTP_PARTIAL_CONTENT Partial Content
207 HTTP_MULTI_STATUS Multi-Status
208 HTTP_ALREADY_REPORTED Already Reported
226 HTTP_IM_USED IM Used
300 HTTP_MULTIPLE_CHOICES Multiple Choices
301 HTTP_MOVED_PERMANENTLY Moved Permanently
302 HTTP_FOUND Found
303 HTTP_SEE_OTHER See Other
304 HTTP_NOT_MODIFIED Not Modified
305 HTTP_USE_PROXY Use Proxy
306 HTTP_RESERVED Reserved
307 HTTP_TEMPORARY_REDIRECT Temporary Redirect
308 HTTP_PERMANENTLY_REDIRECT Permanent Redirect
400 HTTP_BAD_REQUEST Bad Request
401 HTTP_UNAUTHORIZED Unauthorized
402 HTTP_PAYMENT_REQUIRED Payment Required
403 HTTP_FORBIDDEN Forbidden
404 HTTP_NOT_FOUND Not Found
405 HTTP_METHOD_NOT_ALLOWED Method Not Allowed
406 HTTP_NOT_ACCEPTABLE Not Acceptable
407 HTTP_PROXY_AUTHENTICATION_REQUIRED Proxy Authentication Required
408 HTTP_REQUEST_TIMEOUT Request Timeout
409 HTTP_CONFLICT Conflict
410 HTTP_GONE Gone
411 HTTP_LENGTH_REQUIRE Length Required
412 HTTP_PRECONDITION_FAILED Precondition Failed
413 HTTP_REQUEST_ENTITY_TOO_LARGE Request Entity Too Large
414 HTTP_REQUEST_URI_TOO_LONG Request-URI Too Long
415 HTTP_UNSUPPORTED_MEDIA_TYPE Unsupported Media Type
416 HTTP_REQUESTED_RANGE_NOT_SATISFIABLE Requested Range Not Satisfiable
417 HTTP_EXPECTATION_FAILED Expectation Failed
418 HTTP_I_AM_A_TEAPOT I'm a teapot
419 HTTP_INSUFFICIENT_SPACE_ON_RESOURCE Insufficient Space on Resource
420 HTTP_METHOD_FAILURE Method Failure
421 HTTP_MISDIRECTED_REQUEST Misdirected Request
422 HTTP_UNPROCESSABLE_ENTITY Unprocessable Entity
423 HTTP_LOCKED Locked
424 HTTP_FAILED_DEPENDENCY Failed Dependency
425 HTTP_TOO_EARLY Too Early
426 HTTP_UPGRADE_REQUIRED Upgrade Required
428 HTTP_PRECONDITION_REQUIRED Precondition Required
429 HTTP_TOO_MANY_REQUESTS Too Many Requests
431 HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE Request Header Fields Too Large
451 HTTP_UNAVAILABLE_FOR_LEGAL_REASONS Unavailable For Legal Reasons
500 HTTP_INTERNAL_SERVER_ERROR Internal Server Error
501 HTTP_NOT_IMPLEMENTED Not Implemented
502 HTTP_BAD_GATEWAY Bad Gateway
503 HTTP_SERVICE_UNAVAILABLE Service Unavailable
504 HTTP_GATEWAY_TIMEOUT Gateway Timeout
505 HTTP_VERSION_NOT_SUPPORTED HTTP Version Not Supported
506 HTTP_VARIANT_ALSO_NEGOTIATES_EXPERIMENTAL Variant Also Negotiates
507 HTTP_INSUFFICIENT_STORAGE Insufficient Storage
508 HTTP_LOOP_DETECTED Loop Detecte
5010 HTTP_NOT_EXTENDED Not Extended
511 HTTP_NETWORK_AUTHENTICATION_REQUIRED Network Authentication Required

Links

Top comments (2)

Collapse
 
yoursunny profile image
Junxiao Shi

I just look at http.cat/ to select my HTTP response codes.

Collapse
 
scroung720 profile image
scroung720

status 418 - I am a teapot. lol.