Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Iterative Development with Swagger on the JDK

18,653 views

Published on

An overview of the new Inflector project by Tony Tam (@fehguy).

Published in: Technology
  • Be the first to comment

Iterative Development with Swagger on the JDK

  1. 1. Iterative Development with Swagger on the JDK Tony Tam @fehguy
  2. 2. Swagger Codegen • Creation of Clients, Servers from Swagger Spec – 5 servers • Java, Scala, PHP, node.js – 19 clients • Android, Scala, C#, Java, Objective-C, Perl, PHP, Python, QT-CPP, Retrofit, Ruby, HTML, Swift, Tizen, Typescript Angular – Nearly unlimited workflow integration possibilities
  3. 3. Workflow-Specific Configuration • Customized class + templates Server Docker Image ObjC Client Java Client Re-generation with Changes APM integration with Newrelic Ops integration with DataDog Configured name, versions Push to docker repo via Jenkins build Podfile Push to github repo on Jenkins Build Artifact Push to Maven Repo on Jenkins Build
  4. 4. Workflow-Specific Configuration • Independent Iterations from single definition Design + Collaborate Generate Implement Client Implement Logic Iterate Iterate Deploy Deploy
  5. 5. So What’s Broken? • Nothing really! But… – Source Code collisions can be avoided – What’s the source of truth? – How do non-engineers improve documentation? • Not to nitpick but…
  6. 6. So What’s Broken?
  7. 7. Specification-Driven Development • The Swagger Specification should be the source of truth – No round-trips to/from codegen – No out-of-date server based on code changes
  8. 8. Swagger-Inflector • A new Friction Reducer • Programmatic endpoint generation • Your new Plumber
  9. 9. How it Works • Write your Specification • Inflector wires your spec to the server • Endpoints have automatic sample data • Implementation is simply writing controllers • Based on JAX-RS 2.0, Jersey 2.6
  10. 10. Inflector Workflow Design + Collaborate Generate Implement Client Implement Logic Iterate Iterate Deploy Deploy
  11. 11. Focus on Business Logic! inflector.yaml swagger.yaml
  12. 12. Iterative Development! • Unimplemented methods return mock data
  13. 13. Complex Schemas
  14. 14. Stop Plumbing! Remove Redundant Logic
  15. 15. State of the Project • Preview available! – https://github.com/swagger-api/swagger- inflector • Plenty to do! • Will become a fully supported part of Swagger • More Samples soon

×