Je me demande quelle est la différence avec phoenix.gen.json
et phx.gen.json
est. Je utilise actuellement Phoenix 1.3. Ubuntu 16.04LTS. et la version suivante de Erlang/ElixirPhoenix générateur phoenix.gen.json vs mélange phx.gen.json
Erlang/OTP 20 [erts-9.0] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:10] [hipe] [kernel-poll:false]
Elixir 1.5.1
Avec phoenix.gen.json
:
$> mix phoenix.gen.json Session sessions session_id:string
mix phoenix.gen.json is deprecated. Use phx.gen.json instead.
* creating web/controllers/session_controller.ex
* creating web/views/session_view.ex
* creating test/controllers/session_controller_test.exs
* creating web/views/changeset_view.ex
mix phoenix.gen.model is deprecated. Use phx.gen.schema instead.
* creating web/models/session.ex
* creating test/models/session_test.exs
* creating priv/repo/migrations/20170823190558_create_session.exs
Add the resource to your api scope in web/router.ex:
resources "/sessions", SessionController, except: [:new, :edit]
Remember to update your repository by running migrations:
$ mix ecto.migrate
Avec phx.gen.json
:
$> mix phx.gen.json API ContentAsset content_assets content_id:integer
* creating lib/my_app_web/controllers/content_asset_controller.ex
* creating lib/my_app_web/views/content_asset_view.ex
* creating test/my_app_web/controllers/content_asset_controller_test.exs
* creating lib/my_app_web/views/changeset_view.ex
* creating lib/my_appi_web/controllers/fallback_controller.ex
* creating lib/my_app/api/content_asset.ex
* creating priv/repo/migrations/20170823191342_create_content_assets.exs
* creating lib/my_app/api/api.ex
* injecting lib/my_app/api/api.ex
* creating test/my_app/api/api_test.exs
* injecting test/my_app/api/api_test.exs
Add the resource to your :api scope in lib/my_app_web/router.ex:
resources "/content_assets", ContentAssetController, except: [:new, :edit]
Remember to update your repository by running migrations:
$ mix ecto.migrate
Comme on peut le voir que ces deux générateurs ne génèrent pas le même ensemble de des dossiers.
De plus, lorsque nous exécutons le serveur de développement. Je vois les erreurs suivantes des fichiers phx.gen.json
.
$> mix phx.server
Compiling 12 files (.ex)
== Compilation error in file lib/my_app_web/views/content_asset_view.ex ==
** (CompileError) lib/my_app_web/views/content_asset_view.ex:2: module MyAppWeb is not loaded and could not be found
(elixir) expanding macro: Kernel.use/2
lib/my_app_web/views/content_asset_view.ex:2: MyAppWeb.ContentAssetView (module)
(elixir) lib/kernel/parallel_compiler.ex:121: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/1