Ask HN: Compare AutoRest, Apimatic and Swagger Codegen

5 points by AaronKJohnson ↗ HN
Has anyone used AutoRest[1], Apimatic[2] or Swagger Codegen[3] to generate REST API clients in different langauges for production use? How's your experience so far?

Doing a simple Google search reveals the following comparisons, which seem outdated already:

http://blog.jongallant.com/2015/09/api-sdk-generators.html http://apievangelist.com/2015/06/06/comparison-of-automatic-api-code-generation-tools-for-swagger/

Thanks!

[1] https://github.com/Azure/autorest [2] https://www.apimatic.io [3] https://github.com/swagger-api/swagger-codegen

5 comments

[ 3.1 ms ] story [ 32.9 ms ] thread
I've worked on generating SDK's for a small startup last summer. I haven't tried AutoRest but I dabbled with ApiMatic and Swagger and ultimately went with Swagger.

The biggest thing for me was that, while ApiMatic has a lot of really nice tools and options, I couldn't find any way to customize the actual generated code. With Swagger, all of the templates are community made and freely available, and it uses mustache templates, so it makes it really easy to customize.

This was important for my company because we had some custom options we wanted the SDK to handle that weren't necessarily reflected in the API, and convenient helper functions for authentication.

I think the community part is definitely a huge plus for Swagger.

I've worked with swagger in the last 2 years. It was a huge win for simplifying server to mobile integration issues. In this scenario, after creating the contract with Swagger-Editor, Swagger-codegen was my choice for creating skeletons for the server in NodeJS and Java, and proxies on the client side for AngularJS, Android & iOS.
Haven't looked at [1] or [2], but have been using Swagger Codegen [3] for the past 6 months or so on a new project.

Have myself contributed to swagger-codegen a template for generating Angular 2 files which was merged pretty quickly and is still being wonderfully maintained by what strikes me as a great community.

What we did works great for us - strong types on the client side matching the ones on the server minimizes integration tests required to enforce even the slightest model changes.

I've been using Swagger Codegen for the past few months, working on client SDKs in Ruby, Python, Java, and JavaScript.

The biggest thing that impressed me was how active the community was. My pull requests were responded quickly, probably fastest compared to other open source projects I contributed to in the past.