HTTP状态代码作为put_status中的原子

jay*_*del 5 controller elixir phoenix-framework

我正在尝试用Phoenix和Elixir编写一个控制器动作.当一切按计划进行时,我用这一行设置http状态代码:

 put_status :ok
Run Code Online (Sandbox Code Playgroud)

这对我来说是一个有意义的世界.它很好地映射到200 http代码.但是,我正在研究非绿色路径,并且不能为我的生活找出用于其他http代码的原子.我在某处找到了一个引用:not_found online,我假设它映射到404.

我正在尝试返回.目前,我可以完成工作:

put_status 422
Run Code Online (Sandbox Code Playgroud)

但如果存在这样的事情,我宁愿使用适当的原子.

Dog*_*ert 18

完整列表可在文档中找到Plug.Conn.Status.正如你猜测的那样,422是:unprocessable_entity.

已知状态代码

以下状态代码可以作为原子给出,其下一个值如下所示:

  • :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