in reply to Why Mojolicious has two methods to access POST body?

I think whatever method you use is dictated by the protocol that you specified between your client application and the server application.

If you specify that the POST body is a JSON document, then you should the ->json method in your server.

If you specify that the POST body is application/x-www-form-urlencoded (because you don't have a Javascript-driven fancy web frontent but something that can fall back to plain HTML), then you should use the ->body_params method.

Mixing the two or adding magic recognition will only bite you later when you discover that you have a badly specified protocol for your applications.