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.
Open API Generator

The Babel Fish of the API World
Cliffano Subagio | Shine Solutions
Apidays Live Australia – 15 & 16 Se...
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 ...
1. The polyglot systems and the Babel Fish
New York
JULY
Australia
SEPTEMBER
Singapore
APRIL
Helsinki & North
MARCH
Paris
DECEMBER
London
OCTOBER
Jakarta
FEBRUARY
Ho...
© 2020 Shine
Solutions Group
Back in the 2000s,

I was a Java developer
5
• Monolithic J2EE application
s

• 100% pure Jav...
Monolithic Application
6
Java


YOW! 2012 talks

by Fred Georg
e

Micro Services Architecture

Language agnostic service
s

Programmer Anarchy

Use of R...
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 c...
How does it work?
14
OpenAPI

Specification
OpenAPI

Generator
API
Clients
API
Servers
API Docs
Swagger-Parser
Generator
T...
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 depende...
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

...
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
(...
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...
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 ...
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://opencollec...
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...
New York
JULY
Australia
SEPTEMBER
Singapore
APRIL
Helsinki & North
MARCH
Paris
DECEMBER
London
OCTOBER
Jakarta
FEBRUARY
Ho...
You’ve finished this document.
Download and read it offline.
Upcoming SlideShare
What to Upload to SlideShare
Next
Upcoming SlideShare
What to Upload to SlideShare
Next
Download to read offline and view in fullscreen.

0

Share

apidays LIVE Australia 2021 - OpenAPI Generator - The Babel Fish of the API World by Cliffano Subagio, Shine Solutions

Download to read offline

apidays LIVE Australia 2021 - Accelerating Digital
September 15 & 16, 2021

OpenAPI Generator - The Babel Fish of the API World
Cliffano Subagio, Principal Engineer at Shine Solutions

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

apidays LIVE Australia 2021 - OpenAPI Generator - The Babel Fish of the API World by Cliffano Subagio, Shine Solutions

  1. 1. Open API Generator
 The Babel Fish of the API World Cliffano Subagio | Shine Solutions Apidays Live Australia – 15 & 16 September 2021
  2. 2. About Cliffano Subagio Principal Engineer at Shine Solutions Member of OpenAPI Generator Technical Committee
  3. 3. 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
  4. 4. 1. The polyglot systems and the Babel Fish
  5. 5. New York JULY Australia SEPTEMBER Singapore APRIL Helsinki & North MARCH Paris DECEMBER London OCTOBER Jakarta FEBRUARY Hong Kong AUGUST JUNE India MAY Check out our API Conferences here 50+ events since 2012, 14 countries, 2,000+ speakers, 50,000+ attendees, 300k+ online community Want to talk at one of our conferences? Apply to speak here
  6. 6. © 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
  7. 7. Monolithic Application 6 Java
  8. 8. 
 YOW! 2012 talks
 by Fred Georg e Micro Services Architecture
 Language agnostic service s Programmer Anarchy
 Use of Ruby, Clojure, C++, Node.js
  9. 9. Multi Services 8 Ruby Clojure node.js Go Python Java .NET
  10. 10. If you stick one
 in your ear The Babel fish
  11. 11. You instantly understand
 anything sent to you
 in any language
  12. 12. Multi Services 11 Ruby Clojure node.js Go Python Java .NET
  13. 13. 2. Intro to OpenAPI Generator
  14. 14. 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
  15. 15. How does it work? 14 OpenAPI
 Specification OpenAPI
 Generator API Clients API Servers API Docs Swagger-Parser Generator Templates
  16. 16. Example: ipify 15 api.ipify.org GET / ?format=json 200 OK
 { “ip”: “60.240.197.183” }
  17. 17. OpenAPI specification 16 metadata paths responses schemas parameters
  18. 18. Running the generator 17
  19. 19. Running the generator 18
  20. 20. 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
  21. 21. Generated API clients 20 Python Ruby node.js
  22. 22. Generated API clients 21 Java
  23. 23. Example Ruby API client 22
  24. 24. Supported tech stacks 23
  25. 25. 3. My use case scenarios
  26. 26. SOA with custom ESB (mostly Java) 25 ESB Identity
 Service Adapter
 Service Data
 Service Consolidation
 Service Routing
 Service Message
 Service Monitor
 Service
  27. 27. SDK Clients for a REST API 26 API Gateway (OpenAPI) node.js Python Go Java
  28. 28. 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
  29. 29. Performance testing 28 Web
 App JMeter JMX CSV
  30. 30. Jenkins CI/CD 29 Swaggy-
 Jenkins CLI Smart Light
 Notifiers Voice
 App
  31. 31. Top three maintenance tips… 30 1. Integration testing 2. Integration testing 3. Integration testing
  32. 32. 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!
  33. 33. 4. Wrap up + let’s contribute
  34. 34. Remember the Babel fish? 33 Ruby Clojure node.js Go Python Java .NET
  35. 35. OpenAPI Generator 34 https://openapi-generator.tech • Multi tech-stacks suppor t • Boilerplate code for fre e • Massive time saver
  36. 36. My first contribution 35 I optimised file downloading
 in Ruby API client’s
  37. 37. Failed to allocate memory at 2Gb
  38. 38. 100Mb+ memory consumption
  39. 39. Your contributions are welcomed!
 
 https://github.com/OpenAPITools/ openapi-generator
  40. 40. Helping OpenAPI Generator If you find OpenAPI Generator useful,
 please consider becoming a sponsor.
 
 https://opencollective.com/ openapi_generator
  41. 41. Thank you! Any questions? cliff.subagio@shinesolutions.com linkedin.com/in/cliffano/
  42. 42. 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/
  43. 43. New York JULY Australia SEPTEMBER Singapore APRIL Helsinki & North MARCH Paris DECEMBER London OCTOBER Jakarta FEBRUARY Hong Kong AUGUST JUNE India MAY Check out our API Conferences here 50+ events since 2012, 14 countries, 2,000+ speakers, 50,000+ attendees, 300k+ online community Want to talk at one of our conferences? Apply to speak here

apidays LIVE Australia 2021 - Accelerating Digital September 15 & 16, 2021 OpenAPI Generator - The Babel Fish of the API World Cliffano Subagio, Principal Engineer at Shine Solutions

Views

Total views

489

On Slideshare

0

From embeds

0

Number of embeds

7

Actions

Downloads

5

Shares

0

Comments

0

Likes

0

×