Yes.
Creating an abstraction interface for legacy systems to access new services is something common, if not more recommendable, when:
- The cost of changing legacy systems is very significant
- The consuming API may change frequently, or is unstable and could break your applications in some way
- You want to implement extra functionality that would not be possible in legacy systems
- Level of access control
- Metrics
- Request caching (both to search for data, and to send data)
These are some of the reasons. Legacy systems in general aggravate the need for these interfaces (which as @Afonso said, serve as Design pattern Façade).
There are reasons not to do this, the most obvious being to be less laborious to immediately implement the calls in their old programs:
- Have points contrary to those I mentioned above
- Legacy systems no longer accessed any standard interface before, even programming to access your internal enterprise API would require work
This answer is more complex and this was a summary. But when in doubt, do what would seem to be less work. But if someone who worked with an old system at your company says it would be less trouble to do something new (which, look, from what they said they would have said is an option to choose), it’s a good indication of what you don’t know about the technical difficulties
Thank you, I don’t really know the technical difficulties, because I never touched the code of these old systems (and I don’t even have permission), I’m kind of new in the company.
– Lucas Pera