Hi Russ,
Glad you like Taffy! Unfortunately I don't have much in the way of good news as responses to your questions.
As of right now, Taffy is capable of sending data in any format imaginable (via
custom representation classes, as it sounds like you've figured out) - but can only accept input either as a JSON payload, from URL parameters (/foo.json?foo=bar), or as a form-encoded body (as crazy as it sounds, this is just query-string formatting, without the leading question mark, and in the request body instead of the URL. Crazy, but that's the standard for form posts).
One of the early feature requests was for
input deserializers (the inverse of custom representation classes) -- I believe we have Barney Boisvert to thank for this idea. It's something I would love to do but it just hasn't made it to the top of the priority list yet. (Pull requests encouraged! Hit me up if you want to talk specifics)
Another, easier to implement ER that would enable you to get there is the idea of
non-recognized request bodies being available as a "_body" argument to the resource (prefixed to avoid potential conflicts with resource arguments defined by developers). Basically, if XML or some other unrecognized format is received, instead of throwing an exception the framework would make the raw request body available to the resource methods (and onTaffyRequest) as _body and you could then deserialize it yourself.
If you were to go this latter route, I would recommend generalizing the solution in onTaffyRequest, of course:
adding keys to the requestArguments argument will make them available in your resources as if they were sent directly from the consumer.
Again, pull requests are always welcome! :D
Hope that helps clarify the current state of things!