defmodule Router.Folder do
use Maru.Router
namespace :folder do
route_param :id do
get do
IO.puts "ID: " <> params[:id]
json(conn, %{ user: params[:id], msg: "Hello Elixir World!" })
end
params do
requires :name, type: String
end
post do
IO.puts params[:name]
IO.puts params[:token]
IO.puts params[:id]
IO.puts "Posting"
json(conn, %{ msg: "Hello Elixir World!" })
#conn |> text("Hello")
end
end # end route_param :id
end # end namespace :folder
end # end defmodule Router.Folder
defmodule FolderService.API do
use Maru.Router
before do
plug Plug.Logger
plug Plug.Parsers,
pass: ["*/*"],
json_decoder: Poison,
parsers: [:urlencoded, :json]
end
mount Router.Folder
end
が、私はこのエラーを取得するには、次のモジュールの定義を使用して
この** (exit) an exception was raised:
** (Maru.Exceptions.InvalidFormat) Parsing Param Error: name
(folder) lib/folder.ex:29: anonymous fn/1 in FolderService.API.route/2
(maru) lib/maru/runtime.ex:25: Maru.Runtime.parse_params/3
(folder) lib/folder.ex:29: anonymous fn/1 in FolderService.API.route/2
(folder) lib/folder.ex:29: anonymous fn/1 in FolderService.API.error_handler/1
(folder) lib/folder.ex:29: anonymous fn/1 in FolderService.API.call/2
(folder) lib/folder.ex:29: anonymous fn/1 in FolderService.API.error_handler/1
(plug) lib/plug/adapters/cowboy/handler.ex:15: Plug.Adapters.Cowboy.Handler.upgrade/4
(cowboy) src/cowboy_protocol.erl:442: :cowboy_protocol.execute/4
curl
コマンドを実行している:
curl -X POST -H "Content-Type: applicaton/json" -d '{"name": "foobar"}' 'http://localhost:9000/folder/1233'
コードが正常に動作しますが、カールすると
curl -X POST -d "name=foobar" 'http://localhost:9000/folder/1233'
Typo 'applicaton' - >' application'? – Dogbert
はい、それはタイプミスでした。しかし、カールの中で "アプリケーション"のスペルを修正した後でも。エラーは上に貼り付けられたエラーです。 – bpmason1