Anytime business logic changes rapidly, it could be more convenient to be able to update it on the server rather than constantly having to update the client, especially if that client is a mobile app on 1,000,000 phones. So you can keep the client very lightweight because it doesn't need to know or calculate business logic in order to determine what API to call with what parameters. The server can do the logic and send back the exact Request for the client to call.