Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove PhoenixView in favor of documenting how to integrate. #164

Open
alanpeabody opened this issue Aug 27, 2016 · 6 comments
Open

Remove PhoenixView in favor of documenting how to integrate. #164

alanpeabody opened this issue Aug 27, 2016 · 6 comments
Milestone

Comments

@alanpeabody
Copy link
Contributor

This is in the spirit of explicit over implicit.

Suggested by @nurugger07 in #34.

All view really needs is:

defmodule Example.PostView do
  use Example.Web, :view
  use JaSerializer

  def render(action, %{data: data, conn: conn} = args) when action in ["index.json-api", "show.json-api"] do
    JaSerializer.format(__MODULE__, data, conn, args[:opts] || [])
  end

  attributes [:title, :body]
end

Something would also need to be added to the changeset and error views.

@nmcalabroso
Copy link

nmcalabroso commented Nov 28, 2016

Agree to this. I understand how we want to have a plugin that works out of the box. However, explicitly for View, I don't think we need the implicit contextual PhoenixView especially that we will most likely customize the rendering of our data.

This would also allow the project to move independent of framework but only by Plugs.

@alanpeabody
Copy link
Contributor Author

I would love to see a PR to the docs/README overhauling and documenting how to use this lib with Phoenix w/o the phoenix view. Once we have that we can deprecate PhoenixView for removal in a (hopefully) soon to come 1.0 release.

@pinx
Copy link
Contributor

pinx commented Jan 3, 2017

You also need to explicitly handle render :errors. I am quite happy with the PhoenixView.

@oskarrough
Copy link

oskarrough commented Jan 23, 2017

From the perspective of an Elixir beginner, I'm really happy with PhoenixView and anything it can provide to reduce the amount of boilerplate.

@darkbaby123
Copy link

I think removing PhoenixView is a good idea. Recently we want to do I18n for JSON API errors, and we have to build our own EctoErrorSerializer to integrate Gettext. It's actually not hard but lead me to think if we really need the helpers PhoenixView provides. Most of time Serializer.format is enough.

Maybe moving Phoenix integration to another lib like ja-serializer-phoenix is better. People can still use it for seamlessly integration.

I'm also glad to PR a config to use custom Ecto error serializer (maybe even a common behaviour), but if PhoenixView is removed, I think the config will not be necessary.

@alanpeabody
Copy link
Contributor Author

I think a ja-serializer-phoenix lib is a good idea. 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants