2015-09-21 4 views

答えて

9

register_before_send/2を使用するプラグを定義し、応答のcontent-typeヘッダーをチェックすることができます(プラグはヘッダーを小文字にすることに注意してください)。ナイーブな実装(エラーチェック)は次のようになります。

defmodule Plug.UpperCaser do 
    @behaviour Plug 

    import Plug.Conn 

    def init(opts), do: opts 

    def call(conn, _opts) do 
    register_before_send(conn, fn(conn) -> 
     [content_type | _tail] = get_resp_header(conn, "content-type") 
     if String.contains?(content_type, "text/plain") do 
     resp(conn, conn.status, conn.resp_body |> to_string |> String.upcase) 
     else 
     conn 
     end 
    end) 
    end 
end 

resp/3

は、無限ループが発生します send_resp/3として使用されていると、あなたのサーバーを再起動する必要があります。

関連する問題