I'm currently architecting an API and one solution we are leaning towards is to use REST. A key issue is the parameters being passed are complex data types including nested hashes, hashes of arrays of hashes, etc. The philosophy is that the user should be able to complete their tasks with a minimum number of API calls.
One common solution I've seen is to post serialized data, however, this would require clients to manage serializing their own data. Our current API uses XMLRPC and clients can just use a compatible client and not worry about serialization.
My question is for the community, for others that had to come up with a solution to solve this problem, what did you do? What were the costs/tradeoffs? What would you do differently?
Thanks :)