TYPESCRIPT Published: 08.2023
Views: 86

>_ HTTP Status Codes with TypeScript Enums

HTTP Status Codes with TypeScript Enums

Explore how to effectively manage HTTP status codes using TypeScript enums. Learn to create a maintainable and type-safe system for handling HTTP responses.

HTTP Status Codes in TypeScript

TypeScript's enum feature provides an elegant way to manage HTTP status codes, making your code more maintainable and type-safe.

The HTTP Status Code Enum

export enum HttpStatusCode { 
  // 1xx Informational 
  CONTINUE = 100, 
  SWITCHING_PROTOCOLS = 101, 
  PROCESSING = 102, 
  // 2xx Success 
  OK = 200, 
  CREATED = 201, 
  ACCEPTED = 202, 
  NON_AUTHORITATIVE_INFORMATION = 203, 
  NO_CONTENT = 204, 
  RESET_CONTENT = 205, 
  PARTIAL_CONTENT = 206, 
  MULTI_STATUS = 207, 
  ALREADY_REPORTED = 208, 
  IM_USED = 226, 
  // 3xx Redirection 
  MULTIPLE_CHOICES = 300, 
  MOVED_PERMANENTLY = 301, 
  FOUND = 302, 
  SEE_OTHER = 303, 
  NOT_MODIFIED = 304, 
  USE_PROXY = 305,
  TEMPORARY_REDIRECT = 307, 
  PERMANENT_REDIRECT = 308, 
  // 4xx Client errors
  BAD_REQUEST = 400, 
  UNAUTHORIZED = 401, 
  PAYMENT_REQUIRED = 402, 
  FORBIDDEN = 403, 
  NOT_FOUND = 404, 
  METHOD_NOT_ALLOWED = 405, 
  NOT_ACCEPTABLE = 406, 
  PROXY_AUTHENTICATION_REQUIRED = 407, 
  REQUEST_TIMEOUT = 408, 
  CONFLICT = 409, 
  GONE = 410, 
  LENGTH_REQUIRED = 411, 
  PRECONDITION_FAILED = 412, 
  PAYLOAD_TOO_LARGE = 413, 
  URI_TOO_LONG = 414, 
  UNSUPPORTED_MEDIA_TYPE = 415, 
  RANGE_NOT_SATISFIABLE = 416, 
  EXPECTATION_FAILED = 417, 
  IM_A_TEAPOT = 418, 
  MISDIRECTED_REQUEST = 421, 
  UNPROCESSABLE_ENTITY = 422,
  LOCKED = 423, 
  FAILED_DEPENDENCY = 424, 
  UPGRADE_REQUIRED = 426, 
  PRECONDITION_REQUIRED = 428, 
  TOO_MANY_REQUESTS = 429, 
  REQUEST_HEADER_FIELDS_TOO_LARGE = 431, 
  UNAVAILABLE_FOR_LEGAL_REASONS = 451, 
  // 5xx Server errors 
  INTERNAL_SERVER_ERROR = 500, 
  NOT_IMPLEMENTED = 501, 
  BAD_GATEWAY = 502, 
  SERVICE_UNAVAILABLE = 503, 
  GATEWAY_TIMEOUT = 504, 
  HTTP_VERSION_NOT_SUPPORTED = 505, 
  VARIANT_ALSO_NEGOTIATES = 506, 
  INSUFFICIENT_STORAGE = 507, 
  LOOP_DETECTED = 508, 
  NOT_EXTENDED = 510, 
  NETWORK_AUTHENTICATION_REQUIRED = 511, 
}

Categories Overview

1xx: Informational

  • 100 Continue
  • 101 Switching Protocols
  • 102 Processing

2xx: Success

  • 200 OK
  • 201 Created
  • 202 Accepted
  • Additional success codes...

3xx: Redirection

  • 300 Multiple Choices
  • 301 Moved Permanently
  • 302 Found
  • Other redirect codes...

4xx: Client Errors

  • 400 Bad Request
  • 401 Unauthorized
  • 404 Not Found
  • More client errors...

5xx: Server Errors

  • 500 Internal Server Error
  • 502 Bad Gateway
  • 503 Service Unavailable
  • Additional server errors...

Benefits of Using Enums

  1. Type Safety

    • Compile-time checking
    • Autocompletion support
    • Error prevention
  2. Code Organization

    • Logical grouping
    • Easy reference
    • Clear categorization
  3. Maintainability

    • Centralized definitions
    • Easy updates
    • Consistent usage

Best Practices

  1. Use descriptive enum names
  2. Group related status codes
  3. Include relevant comments
  4. Maintain standard naming
  5. Consider backwards compatibility

TypeScript enums make working with HTTP status codes more reliable and developer-friendly.

TAGS:
API HTTP ENUMS