In the render_json function the content-type is not set
so only receive a raw string.
Then the code must to include the content type:
get "/getjson" do
jsonmap = %{key: "value."}
{:ok, str} = Jason.encode(jsonmap)
send_resp(conn|>put_resp_content_type("application/json"), 200, str)
end
Also how can monkey patch or add a function to Plug.route
that can be available in all my routes just doing: use Plug.Route or use Plug.RoutePatched
so can use:
send_json(conn,200,map) # for "application/json"
or another for binary->
send_binary(conn,200,buffer) # for 'image/jpeg'
send_attach(conn,200,filebuffer,"filename")#for "content-disposition", "attachment; filename=myfile.csv", to use in CSV,ZIP etc..
Hi @tomsawyercode! Thanks for bringing this to our attention. This is a good call out and something we should change. I'm happy to make the change or defer to you if you'd rather 😁
I am reading the next article:
https://elixirschool.com/blog/building-apps-with-plug-router/
In the render_json function the content-type is not set so only receive a raw string.
Then the code must to include the content type:
Also how can monkey patch or add a function to Plug.route that can be available in all my routes just doing: use Plug.Route or use Plug.RoutePatched
so can use:
send_json(conn,200,map) # for "application/json"
or another for binary->
send_binary(conn,200,buffer) # for 'image/jpeg'
send_attach(conn,200,filebuffer,"filename")#for "content-disposition", "attachment; filename=myfile.csv", to use in CSV,ZIP etc..
Greetings