SlideShare a Scribd company logo
Open API Generator

The Babel Fish of the API World
Cliffano Subagio | Shine Solutions
Apidays Live Australia – 15 & 16 September 2021
About
Cliffano Subagio
Principal Engineer at Shine Solutions
Member of OpenAPI Generator Technical Committee
Agenda
1. The polyglot systems and the Babel fis
h

2. Intro to OpenAPI Generato
r

3. My use case scenario
s

4. Wrap up + let’s contribute
1. The polyglot systems and the Babel Fish
© 2020 Shine
Solutions Group
Back in the 2000s,

I was a Java developer
5
• Monolithic J2EE application
s

• 100% pure Java mindset
within the community
Monolithic Application
6
Java


YOW! 2012 talks

by Fred Georg
e

Micro Services Architecture

Language agnostic service
s

Programmer Anarchy

Use of Ruby, Clojure, C++, Node.js
Multi Services
8
Ruby
Clojure
node.js Go
Python
Java
.NET
If you stick one

in your ear
The Babel fish
You instantly
understand

anything sent to you

in any language
Multi Services
11
Ruby
Clojure
node.js Go
Python
Java
.NET
2. Intro to OpenAPI Generator
OpenAPI Generator
13
• Open source code generator librar
y

• Written in Java, uses Mustache template
s

• Generates API clients, server stubs, doc
s

• Supports 40+ tech stack
s

• Community fork of Swagger CodeGen
 

• Almost 10k GitHub stars

Almost 2k contributors
How does it work?
14
OpenAPI

Specification
OpenAPI

Generator
API
Clients
API
Servers
API Docs
Swagger-Parser
Generator
Templates
Example: ipify
15
api.ipify.org
GET / ?format=json
200 OK

{ “ip”: “60.240.197.183” }
OpenAPI specification
16
metadata
paths
responses
schemas
parameters
Running the generator
17
Running the generator
18
What will be generated?
19
• Project structur
e

• OpenAPI Generator metadat
a

• READM
E

• CI confi
g

• Library dependencie
s

• Documentatio
n

• Unit test
s

• API client:

Clients, data model
s

• API server stubs:

Endpoints, controllers, payloads
Generated API clients
20
Python Ruby node.js
Generated API clients
21
Java
Example Ruby API client
22
Supported tech stacks
23
3. My use case scenarios
SOA with custom ESB (mostly Java)
25
ESB
Identity

Service
Adapter

Service
Data

Service
Consolidation

Service
Routing

Service
Message

Service
Monitor

Service
SDK Clients for a REST API
26
API Gateway (OpenAPI)
node.js Python Go Java
Infrastructure as Code
27
Legacy
Enterprise
Application
CLI (node.js)
Ruby

API Client
Python

API Client
SpringBoot App
(Java)
Ansible Playbook
Puppet Module
InSpec Profile
Performance testing
28
Web

App
JMeter
JMX
CSV
Jenkins CI/CD
29
Swaggy-

Jenkins
CLI
Smart Light

Notifiers
Voice

App
Top three maintenance tips…
30
1. Integration testing
2. Integration testing
3. Integration testing
31
OpenAPI Spec v2 OpenAPI Spec v3
OpenAPI Generator v2 OAG v3 v4 v5
Python 2 Python 3
Ruby 1.9 Ruby 2.3 Ruby 2.5 Ruby 2.6
My application changes
Dependency Vulnerabilities
Environment changes
Changes happen all the time!
4. Wrap up + let’s contribute
Remember the Babel fish?
33
Ruby
Clojure
node.js Go
Python
Java
.NET
OpenAPI Generator
34
https://openapi-generator.tech
• Multi tech-stacks suppor
t

• Boilerplate code for fre
e

• Massive time saver
My first contribution
35
I optimised file downloading

in Ruby API client’s
Failed to allocate memory at 2Gb
100Mb+ memory consumption
Your contributions are welcomed!



https://github.com/OpenAPITools/
openapi-generator
Helping OpenAPI Generator
If you find OpenAPI Generator useful,

please consider becoming a sponsor.



https://opencollective.com/
openapi_generator
Thank you! Any questions?
cliff.subagio@shinesolutions.com
linkedin.com/in/cliffano/
Resources
https://openapi-generator.tech/
https://github.com/OpenAPITools/openapi-generator/
https://en.wikipedia.org/wiki/
The_Hitchhiker%27s_Guide_to_the_Galaxy#Future_predictions
https://www.youtube.com/watch?v=YWqHkYtREAE
https://www.youtube.com/watch?v=cbFLGv41vBA
https://www.youtube.com/watch?v=sns1DknIwhQ
https://opencollective.com/openapi_generator
https://en.wikipedia.org/wiki/OpenAPI_Specification
https://swagger.io/specification/
https://github.com/cliffano/openapi-ipify
https://github.com/cliffano/swaggy-jenkins
https://github.com/shinesolutions/swagger-aem
https://pixabay.com/photos/boat-shell-rowing-rowers-sport-3404551/

More Related Content

PDF
A Journey to Improve Infrastructure Compliance With InSpec
PDF
Having A Talk With Jenkins
PDF
OpenAPI Generator The Babel Fish of The API World - apidays Live Paris
PDF
apidays LIVE Paris 2021 - Using OpenAPI to configure your API Gateway by Ole ...
PDF
Working effectively with OpenShift
PDF
Developing Great Apps with Apache Cordova
PDF
Emulators as an Emerging Best Practice for API Providers
PDF
給 RD 的 Kubernetes 初體驗
A Journey to Improve Infrastructure Compliance With InSpec
Having A Talk With Jenkins
OpenAPI Generator The Babel Fish of The API World - apidays Live Paris
apidays LIVE Paris 2021 - Using OpenAPI to configure your API Gateway by Ole ...
Working effectively with OpenShift
Developing Great Apps with Apache Cordova
Emulators as an Emerging Best Practice for API Providers
給 RD 的 Kubernetes 初體驗

What's hot (20)

PPTX
How to Work Efficiently in a Hybrid Git-Perforce Environment
PDF
The Road to Continuous Delivery - JAX DevOps 2018
PDF
OpenAPI Spec at Google (Open API Initiative Meetup on 2016-09-15)
PPTX
Continous Delivery and Continous Integration at IKERLAN
PDF
Swagger for-your-api
PDF
Professional iOS development
PPTX
Ciprian redinciuc continuous integration with jenkins for i os
PDF
Swagger code motion talk
PPT
A Tour of Swagger for APIs
PDF
Modern Post-Exploitation Strategies - 44CON 2012
PDF
[RHFSeoul2017]6 Steps to Transform Enterprise Applications
PPTX
Salesforce CI (Continuous Integration) - SFDX + Bitbucket Pipelines
PPTX
Native Script by Sebastian Witalec
PPTX
Writer APIs in Java faster with Swagger Inflector
PDF
Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...
PDF
RISC-V Summit 2019: Next-generation IDE for your RISC-V Product in 20 Minutes
PDF
Angular2 & Native Script GDG DevFest 2016
PPTX
Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014
PDF
Infrastructure as a Code
PDF
DevOps: The Future of Software Development
How to Work Efficiently in a Hybrid Git-Perforce Environment
The Road to Continuous Delivery - JAX DevOps 2018
OpenAPI Spec at Google (Open API Initiative Meetup on 2016-09-15)
Continous Delivery and Continous Integration at IKERLAN
Swagger for-your-api
Professional iOS development
Ciprian redinciuc continuous integration with jenkins for i os
Swagger code motion talk
A Tour of Swagger for APIs
Modern Post-Exploitation Strategies - 44CON 2012
[RHFSeoul2017]6 Steps to Transform Enterprise Applications
Salesforce CI (Continuous Integration) - SFDX + Bitbucket Pipelines
Native Script by Sebastian Witalec
Writer APIs in Java faster with Swagger Inflector
Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...
RISC-V Summit 2019: Next-generation IDE for your RISC-V Product in 20 Minutes
Angular2 & Native Script GDG DevFest 2016
Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014
Infrastructure as a Code
DevOps: The Future of Software Development
Ad

Similar to OpenAPI Generator The Babel Fish of The API World - apidays Live Australia (20)

PDF
apidays LIVE Australia 2021 - OpenAPI Generator - The Babel Fish of the API W...
PDF
apidays LIVE Paris 2021 - OpenAPI Generator - The Babel Fish of the API World...
PDF
[apidays LIVE HONK KONG] - OAS to Managed API in Seconds
PPTX
Delivering Developer Tools at Scale
PDF
Landscape of Eclipse MicroProfile Tools
PPTX
JCON_15FactorWorkshop.pptx
PDF
Day1 before getting_started
PPTX
2014 austin-api-sdks-are-apis-too
PDF
CASCON 2017 - OpenAPI v3
PDF
Presentation at the 2016 Linux Foundation Collab Summit
PDF
Slaying Monoliths with Node and Docker
PDF
Modern web application development with java ee 7
PPTX
Practical Application of API-First in microservices development
PPTX
Jfokus_Bringing the cloud back down to earth.pptx
PPTX
FooConf23_Bringing the cloud back down to earth.pptx
PDF
Getting Started with the WSO2 manager
PDF
Developing Java Microservices Fast with Open Liberty
PPTX
SwissJUG_Bringing the cloud back down to earth.pptx
PDF
apidays Paris 2022 - The 12 Facets of the OpenAPI Specification, Steve Sfartz...
PDF
INTERFACE, by apidays - Building an Accessible API Spec
apidays LIVE Australia 2021 - OpenAPI Generator - The Babel Fish of the API W...
apidays LIVE Paris 2021 - OpenAPI Generator - The Babel Fish of the API World...
[apidays LIVE HONK KONG] - OAS to Managed API in Seconds
Delivering Developer Tools at Scale
Landscape of Eclipse MicroProfile Tools
JCON_15FactorWorkshop.pptx
Day1 before getting_started
2014 austin-api-sdks-are-apis-too
CASCON 2017 - OpenAPI v3
Presentation at the 2016 Linux Foundation Collab Summit
Slaying Monoliths with Node and Docker
Modern web application development with java ee 7
Practical Application of API-First in microservices development
Jfokus_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptx
Getting Started with the WSO2 manager
Developing Java Microservices Fast with Open Liberty
SwissJUG_Bringing the cloud back down to earth.pptx
apidays Paris 2022 - The 12 Facets of the OpenAPI Specification, Steve Sfartz...
INTERFACE, by apidays - Building an Accessible API Spec
Ad

More from Cliffano Subagio (19)

PDF
Cross-Workloads Resource-Level Relationship in AWS
PDF
AEM OpenCloud Delivery Practices
PDF
How to Fit an Infrastructure Platform into Multiple Enterprise Environments
PDF
Swagger AEM - An OpenAPI Specification for AEM
PDF
Introducing AEM OpenCloud
PDF
A Quick Look at Accessibility in the World of DevOps
PDF
Conversation With Your Application Using DialogFlow and CloudFunctions
PDF
Let's Build Voice Assistant Learning Games For Kids
PDF
AEM Open Cloud - The First Two Years
PDF
AEM OpenCloud - What's New Since 2.0.0
PDF
Beyond AEM Curl Commands
PDF
AEM OpenCloud
PDF
Open Source AEM Platform: A Short Intro
PDF
How To Play Music On A Vacuum Cleaner
PDF
Bringing Jenkins Remote Access API To The Masses
PDF
Application Deployment Using Ansible
KEY
Continuous Delivery Using Jenkins
ZIP
Javascript Everywhere From Nose To Tail
ZIP
From Java To Node.js
Cross-Workloads Resource-Level Relationship in AWS
AEM OpenCloud Delivery Practices
How to Fit an Infrastructure Platform into Multiple Enterprise Environments
Swagger AEM - An OpenAPI Specification for AEM
Introducing AEM OpenCloud
A Quick Look at Accessibility in the World of DevOps
Conversation With Your Application Using DialogFlow and CloudFunctions
Let's Build Voice Assistant Learning Games For Kids
AEM Open Cloud - The First Two Years
AEM OpenCloud - What's New Since 2.0.0
Beyond AEM Curl Commands
AEM OpenCloud
Open Source AEM Platform: A Short Intro
How To Play Music On A Vacuum Cleaner
Bringing Jenkins Remote Access API To The Masses
Application Deployment Using Ansible
Continuous Delivery Using Jenkins
Javascript Everywhere From Nose To Tail
From Java To Node.js

Recently uploaded (20)

PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Mushroom cultivation and it's methods.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPTX
Tartificialntelligence_presentation.pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Hybrid model detection and classification of lung cancer
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PPTX
TLE Review Electricity (Electricity).pptx
PDF
Web App vs Mobile App What Should You Build First.pdf
PDF
A novel scalable deep ensemble learning framework for big data classification...
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Encapsulation theory and applications.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Getting Started with Data Integration: FME Form 101
MIND Revenue Release Quarter 2 2025 Press Release
WOOl fibre morphology and structure.pdf for textiles
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Mushroom cultivation and it's methods.pdf
Unlocking AI with Model Context Protocol (MCP)
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Tartificialntelligence_presentation.pptx
Digital-Transformation-Roadmap-for-Companies.pptx
Hybrid model detection and classification of lung cancer
Zenith AI: Advanced Artificial Intelligence
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
TLE Review Electricity (Electricity).pptx
Web App vs Mobile App What Should You Build First.pdf
A novel scalable deep ensemble learning framework for big data classification...
Group 1 Presentation -Planning and Decision Making .pptx
NewMind AI Weekly Chronicles - August'25-Week II
Encapsulation theory and applications.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Chapter 5: Probability Theory and Statistics
Getting Started with Data Integration: FME Form 101

OpenAPI Generator The Babel Fish of The API World - apidays Live Australia