On Wed, 2014-11-12 at 10:23 +0100, Sawyer X wrote:
I have two comments left: 1. I don't think API requests should be conflated with regular page rendering. This should be a clear "I send you JSON, I receive JSON" and a clear "I send a request from the browser to render output for the user and expect to receive HTML back". There is one exception in which you might want to make a JSON request return a rendered HTML which you could stick in the page ("template 'parts/box' => {...}, { layout => undef };") but that's something which would then also get serialized and returned back. Imagine an API on the frontend having to account for either JSON or HTML, not knowing how an error would be returned. It could be a JSON structure with the error or an HTML which itself is an error. It's gonna have a bad time. :)
Okay, I think I may be using this wrong. I have the auto-serializer set to "JSON", which from what I can tell, will look at every response, and always attempt to serialize the output as long as it is passed a ref, regardless of the request. So when I'm returning HTML to a HTML request, it will still try and serialize the data if that HTML happens to be in a reference (even if it stringifies). I am assuming that I should instead set the serializer to "Mutable", which will only try to serialize the appropriate requests.
2. If you found the error unhelpful, we should definitely fix it.
I guess my point was that I couldn't think of any way it could be more helpful, otherwise I would have made a pull request ;-)
If you could open an issue on Github so we can easily add all the context and track it there, we would be more than happy to help.
Thanks. If my comments above stand that I should be (in general) using the Mutable serializer instead of the JSON serializer, than I'll be happy to submit some documentation patches. Thanks, Andy