Why?
Create an ecosystem of applications that are modular and reusable – IDEAL FOR MICROSERVICES
Development teams want to use different components as building blocks to create new products.
What?
Think of the application first: How will the application act as a user of the API? How will you connect the applications to other services?
Challenges
Becuase it is application first, if you have to modify the application / build another application that needs to use the API, you will need to build a new API / modify the first one
However, if you could start with the data and build one API that can provide governed access to all of it - That is what you can do with [[GraphQL]]