Can I modify / extend a production web service without affecting existing customers?

I am currently invoking a web service that returns the class defined by the service that I am interpreting in my application. I am considering that the seller of this web service add a property of this class, which will make my life as good as their other customers, much easier. To be clear, I am not asking them to modify existing behavior or properties, so this will expand existing functionality.

My question is, will this property be added to the class, will it adversely affect the applications of existing clients?

+3
source share
3 answers

This could potentially be a problem, yes:

  • the old client may block upon receipt of an unexpected property from the server
  • the server can block if it does not receive the expected property from old clients

It can also work ... it just needs testing / planning.

A safer option (if you have a complex deployment that not everyone can go right away), you should consider the API and add a new "v2" endpoint, etc.

+3
source

Yes, this may mean that you are getting serialization errors if you have not updated your proxies. This is better than the version of the service interface, even if it means supporting multiple versions simultaneously.

+2
source

Besides the fact that you are asking a third party to take responsibility for development (which they often do not like to do). Modifying / expanding a web service may require downtime, which can be of great importance. This will also prevent backward compatibility of their APIs.

There is also a performance concern if a property contains a lot of additional data that will be passed to all clients unnecessarily.

+1
source

Source: https://habr.com/ru/post/1702813/


All Articles