enum HTTP::Status

Overview

An enum that provides additional support around HTTP status codes.

Based onHypertext Transfer Protocol (HTTP) Status Code Registry

It provides constants for the defined HTTP status codes as well as helper methods to easily identify the type of response.

NOTE To useStatus, you must explicitly import it withrequire "http/status"

Defined in:

http/status.cr

Enum Members

CONTINUE = 100
SWITCHING_PROTOCOLS = 101
PROCESSING = 102
EARLY_HINTS = 103
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
MULTIPLE_CHOICES = 300
MOVED_PERMANENTLY = 301
FOUND = 302
SEE_OTHER = 303
NOT_MODIFIED = 304
USE_PROXY = 305
SWITCH_PROXY = 306
TEMPORARY_REDIRECT = 307
PERMANENT_REDIRECT = 308
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
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

Constructors

Instance Method Summary

Instance methods inherited from struct Enum

&(other : self) : self &, +(other : Int) : self +, -(other : Int) : self -, <=>(other : self) <=>, ==(other : self)
==(other)
==
, ^(other : self) : self ^, |(other : self) : self |, ~ : self ~, clone clone, each(& : self -> ) each, hash(hasher) hash, includes?(other : self) : Bool includes?, inspect(io : IO) : Nil inspect, to_f32 : Float32 to_f32, to_f32! : Float32 to_f32!, to_f64 : Float64 to_f64, to_f64! : Float64 to_f64!, to_i : Int32 to_i, to_i128 : Int128 to_i128, to_i128! : Int128 to_i128!, to_i16 : Int16 to_i16, to_i16! : Int16 to_i16!, to_i32 : Int32 to_i32, to_i32! : Int32 to_i32!, to_i64 : Int64 to_i64, to_i64! : Int64 to_i64!, to_i8 : Int8 to_i8, to_i8! : Int8 to_i8!, to_json(json : JSON::Builder) : Nil to_json, to_s(io : IO) : Nil
to_s : String
to_s
, to_u128 : UInt128 to_u128, to_u128! : UInt128 to_u128!, to_u16 : UInt16 to_u16, to_u16! : UInt16 to_u16!, to_u32 : UInt32 to_u32, to_u32! : UInt32 to_u32!, to_u64 : UInt64 to_u64, to_u64! : UInt64 to_u64!, to_u8 : UInt8 to_u8, to_u8! : UInt8 to_u8!, to_yaml(yaml : YAML::Nodes::Builder) to_yaml, value : Int value

Constructor methods inherited from struct Enum

from_value(value : Int) : self from_value, new(ctx : YAML::ParseContext, node : YAML::Nodes::Node)
new(value : self)
new(pull : JSON::PullParser) : self
new
, parse(string : String) : self parse

Class methods inherited from struct Enum

each(& : self -> ) each, from_value?(value : Int) : self | Nil from_value?, names : Array(String) names, parse?(string : String) : self | Nil parse?, valid?(value : self) : Bool valid?, values : Array(self) values

Macros inherited from struct Enum

[](*values) [], flags(*values) flags

Instance methods inherited from module Comparable(Enum)

<(other : T) : Bool <, <=(other : T) <=, <=>(other : T) <=>, ==(other : T) ==, >(other : T) : Bool >, >=(other : T) >=, clamp(min, max)
clamp(range : Range)
clamp

Instance methods inherited from struct Value

==(other : Log::Metadata::Value)
==(other : JSON::Any)
==(other : YAML::Any)
==(other)
==
, dup dup

Instance methods inherited from class Object

! : Bool !, !=(other) !=, !~(other) !~, ==(other) ==, ===(other : JSON::Any)
===(other : YAML::Any)
===(other)
===
, =~(other) =~, as(type : Class) as, as?(type : Class) as?, class class, dup dup, hash(hasher)
hash
hash
, in?(collection : Object) : Bool
in?(*values : Object) : Bool
in?
, inspect(io : IO) : Nil
inspect : String
inspect
, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, not_nil!(message)
not_nil!
not_nil!
, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, responds_to?(name : Symbol) : Bool responds_to?, tap(&) tap, to_json(io : IO) : Nil
to_json : String
to_json
, to_pretty_json(indent : String = " ") : String
to_pretty_json(io : IO, indent : String = " ") : Nil
to_pretty_json
, to_s(io : IO) : Nil
to_s : String
to_s
, to_yaml(io : IO) : Nil
to_yaml : String
to_yaml
, try(&) try, unsafe_as(type : T.class) forall T unsafe_as

Class methods inherited from class Object

from_json(string_or_io : String | IO, root : String)
from_json(string_or_io : String | IO)
from_json
, from_yaml(string_or_io : String | IO) from_yaml

Macros inherited from class Object

class_getter(*names, &block) class_getter, class_getter!(*names) class_getter!, class_getter?(*names, &block) class_getter?, class_property(*names, &block) class_property, class_property!(*names) class_property!, class_property?(*names, &block) class_property?, class_setter(*names) class_setter, def_clone def_clone, def_equals(*fields) def_equals, def_equals_and_hash(*fields) def_equals_and_hash, def_hash(*fields) def_hash, delegate(*methods, to object) delegate, forward_missing_to(delegate) forward_missing_to, getter(*names, &block) getter, getter!(*names) getter!, getter?(*names, &block) getter?, property(*names, &block) property, property!(*names) property!, property?(*names, &block) property?, setter(*names) setter

Constructor Detail

def self.new(status_code : Int32) : self #

Create a new status instance with the given status code, or raise an error if the status code given is not inside 100..999.

require "http/status"

HTTP::Status.new(100)  # => HTTP::Status::CONTINUE
HTTP::Status.new(202)  # => HTTP::Status::ACCEPTED
HTTP::Status.new(123)  # => 123
HTTP::Status.new(1000) # raises ArgumentError

Instance Method Detail

def accepted? #

Returnstrue if this enum value equalsACCEPTED


def already_reported? #

Returnstrue if this enum value equalsALREADY_REPORTED


def bad_gateway? #

Returnstrue if this enum value equalsBAD_GATEWAY


def bad_request? #

Returnstrue if this enum value equalsBAD_REQUEST


def client_error? : Bool #

Returnstrue if the response status code is between 400 and 499.

require "http/status"

HTTP::Status::METHOD_NOT_ALLOWED.client_error?    # => true
HTTP::Status::INTERNAL_SERVER_ERROR.client_error? # => false

def code : Int32 #

Returns the number that represents the HTTP status code.

require "http/status"

status = HTTP::Status::NO_CONTENT
status.code # => 204

def conflict? #

Returnstrue if this enum value equalsCONFLICT


def continue? #

Returnstrue if this enum value equalsCONTINUE


def created? #

Returnstrue if this enum value equalsCREATED


def description : String | Nil #

Returns the default status description of the given HTTP status code.

require "http/status"

HTTP::Status.new(123).description               # => nil
HTTP::Status::NO_CONTENT.description            # => "No Content"
HTTP::Status::METHOD_NOT_ALLOWED.description    # => "Method Not Allowed"
HTTP::Status::INTERNAL_SERVER_ERROR.description # => "Internal Server Error"

def early_hints? #

Returnstrue if this enum value equalsEARLY_HINTS


def expectation_failed? #

Returnstrue if this enum value equalsEXPECTATION_FAILED


def failed_dependency? #

Returnstrue if this enum value equalsFAILED_DEPENDENCY


def forbidden? #

Returnstrue if this enum value equalsFORBIDDEN


def found? #

Returnstrue if this enum value equalsFOUND


def gateway_timeout? #

Returnstrue if this enum value equalsGATEWAY_TIMEOUT


def gone? #

Returnstrue if this enum value equalsGONE


def http_version_not_supported? #

Returnstrue if this enum value equalsHTTP_VERSION_NOT_SUPPORTED


def im_a_teapot? #

Returnstrue if this enum value equalsIM_A_TEAPOT


def im_used? #

Returnstrue if this enum value equalsIM_USED


def informational? : Bool #

Returnstrue if the response status code is between 100 and 199.

require "http/status"

HTTP::Status::SWITCHING_PROTOCOLS.informational?   # => true
HTTP::Status::INTERNAL_SERVER_ERROR.informational? # => false

def insufficient_storage? #

Returnstrue if this enum value equalsINSUFFICIENT_STORAGE


def internal_server_error? #

Returnstrue if this enum value equalsINTERNAL_SERVER_ERROR


def length_required? #

Returnstrue if this enum value equalsLENGTH_REQUIRED


def locked? #

Returnstrue if this enum value equalsLOCKED


def loop_detected? #

Returnstrue if this enum value equalsLOOP_DETECTED


def method_not_allowed? #

Returnstrue if this enum value equalsMETHOD_NOT_ALLOWED


def misdirected_request? #

Returnstrue if this enum value equalsMISDIRECTED_REQUEST


def moved_permanently? #

Returnstrue if this enum value equalsMOVED_PERMANENTLY


def multi_status? #

Returnstrue if this enum value equalsMULTI_STATUS


def multiple_choices? #

Returnstrue if this enum value equalsMULTIPLE_CHOICES


def network_authentication_required? #

Returnstrue if this enum value equalsNETWORK_AUTHENTICATION_REQUIRED


def no_content? #

Returnstrue if this enum value equalsNO_CONTENT


def non_authoritative_information? #

Returnstrue if this enum value equalsNON_AUTHORITATIVE_INFORMATION


def not_acceptable? #

Returnstrue if this enum value equalsNOT_ACCEPTABLE


def not_extended? #

Returnstrue if this enum value equalsNOT_EXTENDED


def not_found? #

Returnstrue if this enum value equalsNOT_FOUND


def not_implemented? #

Returnstrue if this enum value equalsNOT_IMPLEMENTED


def not_modified? #

Returnstrue if this enum value equalsNOT_MODIFIED


def ok? #

Returnstrue if this enum value equalsOK


def partial_content? #

Returnstrue if this enum value equalsPARTIAL_CONTENT


def payload_too_large? #

Returnstrue if this enum value equalsPAYLOAD_TOO_LARGE


def payment_required? #

Returnstrue if this enum value equalsPAYMENT_REQUIRED


def permanent_redirect? #

Returnstrue if this enum value equalsPERMANENT_REDIRECT


def precondition_failed? #

Returnstrue if this enum value equalsPRECONDITION_FAILED


def precondition_required? #

Returnstrue if this enum value equalsPRECONDITION_REQUIRED


def processing? #

Returnstrue if this enum value equalsPROCESSING


def proxy_authentication_required? #

Returnstrue if this enum value equalsPROXY_AUTHENTICATION_REQUIRED


def range_not_satisfiable? #

Returnstrue if this enum value equalsRANGE_NOT_SATISFIABLE


def redirection? : Bool #

Returnstrue if the response status code is between 300 and 399.

require "http/status"

HTTP::Status::SWITCH_PROXY.redirection?          # => true
HTTP::Status::INTERNAL_SERVER_ERROR.redirection? # => false

def request_header_fields_too_large? #

Returnstrue if this enum value equalsREQUEST_HEADER_FIELDS_TOO_LARGE


def request_timeout? #

Returnstrue if this enum value equalsREQUEST_TIMEOUT


def reset_content? #

Returnstrue if this enum value equalsRESET_CONTENT


def see_other? #

Returnstrue if this enum value equalsSEE_OTHER


def server_error? : Bool #

Returnstrue if the response status code is between 500 and 599.

require "http/status"

HTTP::Status::INTERNAL_SERVER_ERROR.server_error? # => true
HTTP::Status::METHOD_NOT_ALLOWED.server_error?    # => false

def service_unavailable? #

Returnstrue if this enum value equalsSERVICE_UNAVAILABLE


def success? : Bool #

Returnstrue if the response status code is between 200 and 299.

require "http/status"

HTTP::Status::NO_CONTENT.success?            # => true
HTTP::Status::INTERNAL_SERVER_ERROR.success? # => false

def switch_proxy? #

Returnstrue if this enum value equalsSWITCH_PROXY


def switching_protocols? #

Returnstrue if this enum value equalsSWITCHING_PROTOCOLS


def temporary_redirect? #

Returnstrue if this enum value equalsTEMPORARY_REDIRECT


def too_many_requests? #

Returnstrue if this enum value equalsTOO_MANY_REQUESTS


def unauthorized? #

Returnstrue if this enum value equalsUNAUTHORIZED


def unavailable_for_legal_reasons? #

Returnstrue if this enum value equalsUNAVAILABLE_FOR_LEGAL_REASONS


def unprocessable_entity? #

Returnstrue if this enum value equalsUNPROCESSABLE_ENTITY


def unsupported_media_type? #

Returnstrue if this enum value equalsUNSUPPORTED_MEDIA_TYPE


def upgrade_required? #

Returnstrue if this enum value equalsUPGRADE_REQUIRED


def uri_too_long? #

Returnstrue if this enum value equalsURI_TOO_LONG


def use_proxy? #

Returnstrue if this enum value equalsUSE_PROXY


def variant_also_negotiates? #

Returnstrue if this enum value equalsVARIANT_ALSO_NEGOTIATES