user483040
user483040

Reputation:

HTTP status codes as atoms in put_status

I'm trying to write a controller action with Phoenix and Elixir. When everything goes according to plan, I set the http status code with this line in:

 put_status :ok

and that makes a world of sense to me. It maps nicely to a 200 http code. However, I'm working on the not-green-path and cannot for the life of me figure out what atoms to use for the other http codes. I found a reference to :not_found online somewhere, which I'm assuming maps to a 404.

I'm trying to return a . Currently, I can get the job done with:

put_status 422

but I'd rather use the appropriate atom if such a thing exists.

Upvotes: 7

Views: 6107

Answers (1)

Dogbert
Dogbert

Reputation: 222398

The complete list is available in the documentation for Plug.Conn.Status. 422 is, as you guessed, :unprocessable_entity.

Known status codes

The following status codes can be given as atoms with their respective value shown next:

  • :continue - 100
  • :switching_protocols - 101
  • :processing - 102
  • :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
  • :instance_manipulation_used - 226
  • :multiple_choices - 300
  • :moved_permanently - 301
  • :found - 302
  • :see_other - 303
  • :not_modified - 304
  • :use_proxy - 305
  • :reserved - 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
  • :request_entity_too_large - 413
  • :request_uri_too_long - 414
  • :unsupported_media_type - 415
  • :requested_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
  • :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

Upvotes: 30

Related Questions