It makes sense to give the server applications as much responsibility as possible as to avoid having to rewrite logic across different types of clients.
In my case I am developing a data structure that represents human relations (mother, father, sister, brother, etc.) the purpose is to query the data structure and get the chain (if there is one) of relations between two people.
I ultimately want to support types of relations that are not consistent through cultures and languages. In English for example there is only grandmother and grandfather, where as in other languages these can be expressed in terms of which parents side they are on.
I am not sure how to divide the responsibilities of the service on the client and server.
Or should I do everything on the server? Using this option it feels like the server would do to much almost, shouldn't it be enough to return data (culture independent relations) that can represent other data (culture-specific relations) and let the clients do the conversion as they see fit? On the other hand the conversion involves quite a lot of logic...
Or should I have both? That is, on the server provide a relation chain independent of culture on the plus some culture specific relations that i wish to support. This way, if some types of relations are not supported by the API someone can grab the culture independent relation chain and do their own conversion.
If you think of other pros / cons with the different approaches I'd like to hear them.
What is the better approach and why?