Our Zalando developers are building services for a swathe of great projects lately. Swagger, the API framework, is just one of the projects we’re using and building libraries for. As a company that champions an “API First” approach, the Swagger Specification complements our own push to apply a RESTful style to APIs.
One of our related contributions comes in the form of Connexion, a framework for Python on top of Flask that automagically handles HTTP requests based on the OpenAPI 2.0 Specification of your API, described in YAML format. It allows you to write a Swagger specification, then maps the endpoints to your Python functions – a unique process, when many tools generate the specification based directly on your Python code.
Connexion has generated a great level of interest from developers at Optimizely, the A/B testing and personalisation platform, amongst other companies.
Our developers have also built play-swagger, which provides Swagger support for the Play Framework, and Friboo, a utility library to write microservices in Clojure with support for Swagger and OAuth. You can then add an IntelliJ plugin to the list, where you can easily edit Swagger specification files inside IntelliJ IDEA.
With all this Swagger action going on, we wanted to know how our input was being received and learn more about the OpenAPI Initiative in general. We got in touch with one of the fans of our IntelliJ IDEA plugin and creator of Swagger Tony Tam, head of all things Swagger at SmartBear, to find out more.
Zalando Tech: We've heard that you've been spreading the word about Connexion. Thanks! What are your thoughts on the framework? What is the feedback like?
Tony Tam: There have been a few efforts to do a true design-first implementation of REST APIs and Zalando has been right on the leading edge of that movement. Connexion fills the need in the Python landscape, and is an excellent sibling to swagger-inflector for Java and swagger-node for node.js. It has been a delight for the development community to see a large retailer putting efforts into an open source framework.
Letting the OpenAPI definition drive the implementation is still a fairly new idea, but it’s catching on quickly as developers figure out that it’s truly a great way to develop.
Zalando Tech: There's been mention of additional formats in the works on top of JSON and YAML for the spec. How is this progressing?
Tony Tam: It’s still in active and lively discussion – it’s still unclear if we’re going to have it in this version of the spec or not. We are looking at how to give the specification more future-proofing by getting in front of other formats, however, it may be in a subsequent release.
Zalando Tech: There are currently more than 15 language integrations for Swagger. Have you got a wishlist for other community-driven language integrations?
Tony Tam: I’m all for a smaller number of excellent integrations. I think there is room to improve some of the existing language support to a design-first, like Connexion. But there is always a new hipster language on the front that needs to have support.
Zalando Tech: What does the future road map look like for OAI? What non-technical activities have been identified to facilitate the further evolution of the spec and its adoption within the industry?
Tony Tam: We’ve been very transparent about the roadmap by tracking all the activity in GitHub. Now with the OAI and the increased support, we have made changes which will allow many more APIs to be described by the OpenAPI Specification, which will be great for everyone.