Hi,
I am currently working on Web API for our old core system. We have a couple of problems with it as usually, however one problem bother me for a while.
Lets say we have one resources representation like this:
{
"bars": [
{
"name": "bar1",
"value": "foo"
},
{
"name": "bar2",
"value": "ola"
}
]
}
We have also defined possible list of all object names. Now every customer can defined its one mandatory set from this list, however this change need new agreement and end up with new PROD update.
Problem:
If one customer request for mandatory fields change, no matter what it can break his clients (web apps, mobiles,) so we probably need to create new API version.
But it will be very irresponsible in front of other customers.
Some solution can be let say, bars versioning per customer, however i am feeling that it is strange when we want to from one site expose one common API from another have some behaviors which are very customer specific.
Can you share your thought about it?