Building quality APIs is a key success factor into integrating distributed systems.
A well designed API is technology agnostic, easy to use, and easy to evolve, this can only be achieved by using tools and well defined standards and principles.
First we will present how Swagger started to address APIs definitions using the design first approach, and how it evolved into the Open API specification.
Furthermore we will describe the REST maturity model and compare it with a more pragmatic approach, where guidelines inspired by Apigee's Web API Design book are presented.
Finally a demonstration of a sample REST API using Open API, can be found in https://github.com/embenzekri/moneytransfer.