I get these errors on iex -S mix when playing on local with it. Not sure if important or not, the app behaves OK.
[error] Process #PID<0.3906.0> raised an exception ** (CaseClauseError) no case clause matching: {:ok, {:ok, {:http_req, #Port<0.135027>, :ranch_tcp, :keepalive, #PID<0.3906.0>, "PUT", :"HTTP/1.1", {{127, 0, 0, 1}, 57093}, "localhost", :undefined, 8080, "/api/v1/todos/2", :undefined, "", :undefined, [id: "2"], [{"host", "localhost:8080"}, {"connection", "keep-alive"}, {"content-length", "49"}, {"accept", "application/json"}, {"origin", "http://localhost:3000"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"}, {"authorization", "Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJVc2VyOjEiLCJleHAiOjE0OTM0NDM4MDgsImlhdCI6MTQ5MDg1MTgwOCwiaXNzIjoiVG9kb0FwcCIsImp0aSI6Ijk4ZmYzMDBjLTk4MTEtNDE0Yy1iZjlkLWQwMTFjNzFmYjY5NiIsInBlbSI6e30sInN1YiI6IlVzZXI6MSIsInR5cCI6ImFjY2VzcyJ9.nD2bCL-vi8hr_6mLLdv_DmbLKEw1OeKkLdw2XiQgNvWqYb9UcqNGGUlw3C3yxKfnxIAiruKO5CUSdvSLn1tTKw"}, {"content-type", "application/json"}, {"dnt", "1"}, {"referer", "http://localhost:3000/"}, {"accept-encoding", "gzip, deflate, sdch, br"}, {"accept-language", "es,en-US;q=0.8,en;q=0.6,fr;q=0.4"}], [{"content-length", 49}, {"expect", :undefined}, {"content-type", {"application", "json", []}}, {"if-modified-since", :undefined}, {"if-none-match", :undefined}, {"if-unmodified-since", :undefined}, {"if-match", :undefined}, {"accept", [{{"application", "json", []}, 1000, []}]}, {"authorization", {"bearer", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJVc2VyOjEiLCJleHAiOjE0OTM0NDM4MDgsImlhdCI6MTQ5MDg1MTgwOCwiaXNzIjoiVG9kb0FwcCIsImp0aSI6Ijk4ZmYzMDBjLTk4MTEtNDE0Yy1iZjlkLWQwMTFjNzFmYjY5NiIsInBlbSI6e30sInN1YiI6IlVzZXI6MSIsInR5cCI6ImFjY2VzcyJ9.nD2bCL-vi8hr_6mLLdv_DmbLKEw1OeKkLdw2XiQgNvWqYb9UcqNGGUlw3C3yxKfnxIAiruKO5CUSdvSLn1tTKw"}}, {"connection", ["keep-alive"]}], :undefined, [media_type: {"application", "json", []}, charset: :undefined], :done, "", :undefined, false, :done, [], "", :undefined}}} (cowboy) /Users/cpu/Work/Code/elixir-cowboy-react-spa/deps/cowboy/src/cowboy_rest.erl:777: :cowboy_rest.process_content_type/3 (cowboy) /Users/cpu/Work/Code/elixir-cowboy-react-spa/deps/cowboy/src/cowboy_protocol.erl:442: :cowboy_protocol.execute/4 [error] Ranch listener :http_listener had connection process started with :cowboy_protocol:start_link/4 at #PID<0.3906.0> exit with reason: {{:case_clause, {:ok, {:ok, {:http_req, #Port<0.135027>, :ranch_tcp, :keepalive, #PID<0.3906.0>, "PUT", :"HTTP/1.1", {{127, 0, 0, 1}, 57093}, "localhost", :undefined, 8080, "/api/v1/todos/2", :undefined, "", :undefined, [id: "2"], [{"host", "localhost:8080"}, {"connection", "keep-alive"}, {"content-length", "49"}, {"accept", "application/json"}, {"origin", "http://localhost:3000"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"}, {"authorization", "Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJVc2VyOjEiLCJleHAiOjE0OTM0NDM4MDgsImlhdCI6MTQ5MDg1MTgwOCwiaXNzIjoiVG9kb0FwcCIsImp0aSI6Ijk4ZmYzMDBjLTk4MTEtNDE0Yy1iZjlkLWQwMTFjNzFmYjY5NiIsInBlbSI6e30sInN1YiI6IlVzZXI6MSIsInR5cCI6ImFjY2VzcyJ9.nD2bCL-vi8hr_6mLLdv_DmbLKEw1OeKkLdw2XiQgNvWqYb9UcqNGGUlw3C3yxKfnxIAiruKO5CUSdvSLn1tTKw"}, {"content-type", "application/json"}, {"dnt", "1"}, {"referer", "http://localhost:3000/"}, {"accept-encoding", "gzip, deflate, sdch, br"}, {"accept-language", "es,en-US;q=0.8,en;q=0.6,fr;q=0.4"}], [{"content-length", 49}, {"expect", :undefined}, {"content-type", {"application", "json", []}}, {"if-modified-since", :undefined}, {"if-none-match", :undefined}, {"if-unmodified-since", :undefined}, {"if-match", :undefined}, {"accept", [{{"application", "json", []}, 1000, []}]}, {"authorization", {"bearer", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJVc2VyOjEiLCJleHAiOjE0OTM0NDM4MDgsImlhdCI6MTQ5MDg1MTgwOCwiaXNzIjoiVG9kb0FwcCIsImp0aSI6Ijk4ZmYzMDBjLTk4MTEtNDE0Yy1iZjlkLWQwMTFjNzFmYjY5NiIsInBlbSI6e30sInN1YiI6IlVzZXI6MSIsInR5cCI6ImFjY2VzcyJ9.nD2bCL-vi8hr_6mLLdv_DmbLKEw1OeKkLdw2XiQgNvWqYb9UcqNGGUlw3C3yxKfnxIAiruKO5CUSdvSLn1tTKw"}}, {"connection", ["keep-alive"]}], :undefined, [media_type: {"application", "json", []}, charset: :undefined], :done, "", :undefined, false, :done, [], "", :undefined}}}}, [{:cowboy_rest, :process_content_type, 3, [file: '/Users/cpu/Work/Code/elixir-cowboy-react-spa/deps/cowboy/src/cowboy_rest.erl', line: 777]}, {:cowboy_protocol, :execute, 4, [file: '/Users/cpu/Work/Code/elixir-cowboy-react-spa/deps/cowboy/src/cowboy_protocol.erl', line: 442]}]}
Thanks for this example, really cool to avoid Phoenix Views/Templates if one prefers to choose React/Redux for the frontend.
Would you accept a PR trying to add react-native to the bunch? Not sure how far it will go as far as a nice experiment.