SlideShare ist ein Scribd-Unternehmen logo
1 von 56
Downloaden Sie, um offline zu lesen
API design
best practice
Luca Ferrari
EMEA Solution Architect - Red Hat
Meetup objective
It is:
- A cheat sheet on API design
- A starting point for further investigation
- My first meetup as speaker
It is not:
- An explanation of the details of Swagger
- Revolutionary perspective on APIs
- The answer to all your questions about APIs (there
is a networking session for this)
2
Agenda
➔ API life & death
➔ API design phase
➔ API design principles
➔ OAS effect
➔ The blacksmith tools
➔ A tool chain
3
The (obvious) importance of Web APIs
01 Modern and powerful web browser.
02 The rise of minicomputers (also known as smartphone) and appification
03 The real world adoption of IoT device (Hey Google?)
Mashups:
https://wheelof.com/lunch/?zip=barcelona&query=lunch&radius=5
04 Simplification of protocols (HTTP rules)
05 New business models
the quality of a company’s API design provides a view into how the business truly values developers.
4
Lifecycle
5
One view
6
Another view
7
A simple view of it
8
A simple view of it
9
Determine API Business Strategy
● Natural extensions VS innovative model
● Operational efficiency VS company
vision and objectives
● Private APIs VS Partner APIs VS Public
APIs
A simple view of it
10
Prepare and Construct
technical requirements and development
plans:
● What operations
● How is it managed
● Which methods and protocols
● How big (now and then)
● Is it secure enough
● Is it usable enough
● Human VS Machine usability
A simple view of it
11
Promoting the Public API:
● Hackathons
● Documentation
● Omni-channel support
● Public events
● DX vs UX vs UI
Fix and Re-Fix:
● Analytics
● Users feedback
● Forums
● Documented and informed changes
● Fix →Feedback →Re-Fix
A simple view of it
12
Versioning & Deprecation
● limited usage
● lack of support
● lack of participation
● negative business effects
● privacy and security concern
API design phase
13
Which path will you take?
14
Which path will you take?
15
Design First approach:
● designing the API’s contract first
● new approach
● use of API description formats
Code First approach:
● traditional approach
● development of code happening after business requirements
● generating the documentation from the code
Which path will you take?
16
Design First advantages:
❏ better DX
❏ consistent design
❏ high re-usage
❏ business critical
❏ omni-channel
❏ better communication
Code First advantages:
❏ internal usage
❏ fast prototyping
❏ more automated
❏ agility (in the sense of fast,
wrong, retry)
API Design microscope
17
Service Description
Service Name
Domain Knowledge
Team-members
Organization
Schema of data
Repository
Assertions
Scenarios
OpenAPI
README
Tags
Definition
API Design microscope
18
Base Path
Path(s)
Verb(s)
Parameters
Headers
Body
Beyond Verbs With
Actions
Media Types
Status Codes
Filtering*
Pagination*
Sorting*
Response(s)
Errors
Design
API Design microscope
19
Major
Minor
Road Map
Communication
Versioning
Paths
Data
Virtualization
API Design microscope
20
Scenarios
Saved Requests
Responses
Playback
Results Archive
Reporting
Testing
API Design microscope
21
Hosting
Template
Discovery
Catalog
Portal
Blog
Github
Tickets
Internal / External
Email
Workshops
Communication
& Support
Design principles
22
1. API as a Product
23
➔ Designate API from the beginning as separate project
➔ Even if it is just for internal usage
➔ Adopt the same action mandated for other products:
● Dedicated communication
● API product management
● API product lifecycle
● API product KPI
● API product sponsoring
2. PoV of the Developer
24
Provider: Organization structure design flaw
Developer: The APIs are inconsistent, duplicated and full of
holes
Provider: Database structure design flaw
Developer: I don’t care about the data source structure or
technology, as long as you provide it reliably and consistently
3. { ‘Document’: ‘document’ }
25
What makes for a great documentation:
1. Format:
a. Easy to read
b. Well designed
c. Easy to update
d. Easy to access
2. Completeness:
a. Remember it is a contract
b. Various levels of experience and situations
3. Interactive:
a. OpenAPI
4. Learning curve
26
Make it easy:
1. Easy to access examples with data
2. Limited mandatory fields
3. Use hypermedia links to suggest actions
4. Offer one way to accomplish common scenarios
5. EXTRA POINTS: provide API based workflows (recipes)
and monitor usage
5. consistent, consistent, consistent
27
Predictability here is a good sign:
1. Consistent naming and convention
2. Consistent camel case
3. Consistent resource URLs
4. Consistent payload format
5. Consistent errors format
6. Wait for it … Security !
28
You don’t want to make the news (here, here) , security should
never be an afterthought:
1. Authentication (AuthN):
a. Basic Auth
b. API key
c. OAuth2
2. Authorization (AuthZ)
3. Data Leakage Protection
4. TLS is your friend
5. OWASP:
https://www.owasp.org/index.php/REST_Security_Cheat_S
heet
7. Guided examples
29
Going beyond Read and Write:
1. Time To First Hello World
2. OnBoarding Total Effort
3. Workflow examples
4. Production ready guidelines
8. EXTRA POINTS: little developer help
30
HTTP client libraries:
1. Right set of programming languages
2. Updated automatically
3. Updated frequently
4. Well explained
Some great examples
31
Adidas:
https://adidas.gitbook.io/api-guidelines/general-guidelines/gen
eral-guidelines
Zalando:
https://opensource.zalando.com/restful-api-guidelines/index.h
tml#principles
OAS effect
32
API specs formats
33
OAS or Swagger: WADL:
Bottom up construction W3C spec
Most popular Complex
Language agnostic
YAML or JSON Slate:
Minimal adoption
RAML:
More readable API Blueprint:
Less strict Markdown based
YAML Low adoption
Opinionated Can’t handle complex
API specs formats
34
OAS or Swagger: WADL:
Bottom up construction W3C spec
Most popular Complex
Language agnostic
YAML or JSON Slate:
Minimal adoption
RAML:
More readable API Blueprint:
Less strict Markdown based
YAML Low adoption
Opinionated Can’t handle complex
OAS v3.0
35
OAS v3.0
36
SERVERS:
● have multiple URLs are now allowed
● they can be used anywhere (even in PATH)
● PATH templates are now allowed
COMPONENTS:
● most of object are defined as components
● componentization (REST principle)
responses (existing) parameters (existing) examples (new)
requestBodies (new) headers (new) links (new) callbacks (new)
schemas (updated) securitySchemes (updated)
OAS v3.0
37
requestBody:
● added cookie parameter
● you can add an example (or array of examples)
● it now supports different media types
response:
● added wildcard response codes
callbacks:
● webhooks support
OAS v3.0
38
links:
● hypermedia support
● next action
● pagination support
SECURITY:
● multiple flows allowed
● OpenID Connect support
OAS v3.0 - links
39
The Link object represents a possible design-time link for a response. The
presence of a link does not guarantee the caller's ability to successfully
invoke it, rather it provides a known relationship and traversal mechanism
between responses and other operations.
Clients follow all links at their discretion. Neither permissions, nor the
capability to make a successful call to that link, is guaranteed solely by the
existence of a relationship.
OAS v3.0 - links (example)
40
https://gist.githubusercontent.com/lucamaf/c8c865077586b6291a
133f816ecc799f/raw/7d6254a8b154ef12ae03e5eb7a3717c81bb1
cade/gistfile1.txt
OAS v3.0 - callbacks
41
A map of possible out-of band callbacks related to the parent operation.
Each value in the map is a Path Item Object that describes a set of
requests that may be initiated by the API provider and the expected
responses. The key used to identify the callback object is an expression,
that identifies a URL to use for the callback operation.
OAS v3.0 - callbacks (example)
42
https://gist.githubusercontent.com/lucamaf/d210ae9b04358c3236
78aa5fbaf167a4/raw/323561a45cb156abf632409906da1fcac2e36
083/gistfile1.txt
Time for your opinion!
43
https://www.menti.com/
The tools
44
Stoplight
45
● Visual editor
● Integrated mock server
● Collaborative design
● Free Plan
● Non Open Source
Stoplight - DEMO
46
https://next.stoplight.io/
Restlet
47
● Visual editor
● Mocking possible
● Collaboration
● Generate server and client SDKs
● Free plan
● Partly open source
Restlet - DEMO
48
https://studio.restlet.com/
Apicurio
49
● Visual editor
● Generate API scaffolding
● Collaboration (real time)
● Support for OAS3
● Full Open Source
Apicurio - DEMO
50
https://studio.apicur.io/
51
Test page
Time for your opinion!
52
https://www.menti.com/
A tool chain
53
Complementary tools
54
API Testing
Postman, JMeter3
API Mocking
Wiremock,
Mock-Server,
microcks
2
API Design
Stoplight, Restlet,
Apicurio
1
Acknowledgements
55
Adidas ProgrammableWeb Design great web APIs
NordicAPIs APIHandyman Zalando
Stoplight swaggerhub
Restlet apievangelist
Apicurio apis-guru (github)
Thank you for your time !
Let’s hear feedbacks
https://www.menti.com/
56

Weitere ähnliche Inhalte

Was ist angesagt?

How to GraphQL
How to GraphQLHow to GraphQL
How to GraphQLTomasz Bak
 
KPIs for APIs (and how API Calls are the new Web Hits, and you may be measuri...
KPIs for APIs (and how API Calls are the new Web Hits, and you may be measuri...KPIs for APIs (and how API Calls are the new Web Hits, and you may be measuri...
KPIs for APIs (and how API Calls are the new Web Hits, and you may be measuri...John Musser
 
Microservices Integration Patterns with Kafka
Microservices Integration Patterns with KafkaMicroservices Integration Patterns with Kafka
Microservices Integration Patterns with KafkaKasun Indrasiri
 
Domain Driven Design and Hexagonal Architecture with Rails
Domain Driven Design and Hexagonal Architecture with RailsDomain Driven Design and Hexagonal Architecture with Rails
Domain Driven Design and Hexagonal Architecture with RailsDeclan Whelan
 
API Gateway How-To: The Many Ways to Apply the Gateway Pattern
API Gateway How-To: The Many Ways to Apply the Gateway PatternAPI Gateway How-To: The Many Ways to Apply the Gateway Pattern
API Gateway How-To: The Many Ways to Apply the Gateway PatternVMware Tanzu
 
REST vs GraphQL
REST vs GraphQLREST vs GraphQL
REST vs GraphQLSquareboat
 
Deploying Flink on Kubernetes - David Anderson
 Deploying Flink on Kubernetes - David Anderson Deploying Flink on Kubernetes - David Anderson
Deploying Flink on Kubernetes - David AndersonVerverica
 
Designing APIs with OpenAPI Spec
Designing APIs with OpenAPI SpecDesigning APIs with OpenAPI Spec
Designing APIs with OpenAPI SpecAdam Paxton
 
The Architecture of an API Platform
The Architecture of an API PlatformThe Architecture of an API Platform
The Architecture of an API PlatformJohannes Ridderstedt
 
GraphQL vs REST
GraphQL vs RESTGraphQL vs REST
GraphQL vs RESTGreeceJS
 
Understanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsUnderstanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsTessa Mero
 
Angular and The Case for RxJS
Angular and The Case for RxJSAngular and The Case for RxJS
Angular and The Case for RxJSSandi Barr
 
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)Hafiz Ismail
 
Service Mesh - Observability
Service Mesh - ObservabilityService Mesh - Observability
Service Mesh - ObservabilityAraf Karsh Hamid
 
Asynchronous API in Java8, how to use CompletableFuture
Asynchronous API in Java8, how to use CompletableFutureAsynchronous API in Java8, how to use CompletableFuture
Asynchronous API in Java8, how to use CompletableFutureJosé Paumard
 
CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton Araf Karsh Hamid
 
API Management Part 1 - An Introduction to Azure API Management
API Management Part 1 - An Introduction to Azure API ManagementAPI Management Part 1 - An Introduction to Azure API Management
API Management Part 1 - An Introduction to Azure API ManagementBizTalk360
 
REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & DevelopmentAshok Pundit
 

Was ist angesagt? (20)

How to GraphQL
How to GraphQLHow to GraphQL
How to GraphQL
 
KPIs for APIs (and how API Calls are the new Web Hits, and you may be measuri...
KPIs for APIs (and how API Calls are the new Web Hits, and you may be measuri...KPIs for APIs (and how API Calls are the new Web Hits, and you may be measuri...
KPIs for APIs (and how API Calls are the new Web Hits, and you may be measuri...
 
Microservices Integration Patterns with Kafka
Microservices Integration Patterns with KafkaMicroservices Integration Patterns with Kafka
Microservices Integration Patterns with Kafka
 
Domain Driven Design and Hexagonal Architecture with Rails
Domain Driven Design and Hexagonal Architecture with RailsDomain Driven Design and Hexagonal Architecture with Rails
Domain Driven Design and Hexagonal Architecture with Rails
 
API Gateway How-To: The Many Ways to Apply the Gateway Pattern
API Gateway How-To: The Many Ways to Apply the Gateway PatternAPI Gateway How-To: The Many Ways to Apply the Gateway Pattern
API Gateway How-To: The Many Ways to Apply the Gateway Pattern
 
REST vs GraphQL
REST vs GraphQLREST vs GraphQL
REST vs GraphQL
 
Deploying Flink on Kubernetes - David Anderson
 Deploying Flink on Kubernetes - David Anderson Deploying Flink on Kubernetes - David Anderson
Deploying Flink on Kubernetes - David Anderson
 
Designing APIs with OpenAPI Spec
Designing APIs with OpenAPI SpecDesigning APIs with OpenAPI Spec
Designing APIs with OpenAPI Spec
 
GraphQL
GraphQLGraphQL
GraphQL
 
The Architecture of an API Platform
The Architecture of an API PlatformThe Architecture of an API Platform
The Architecture of an API Platform
 
GraphQL vs REST
GraphQL vs RESTGraphQL vs REST
GraphQL vs REST
 
Understanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsUnderstanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple Steps
 
Angular and The Case for RxJS
Angular and The Case for RxJSAngular and The Case for RxJS
Angular and The Case for RxJS
 
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
 
Service Mesh - Observability
Service Mesh - ObservabilityService Mesh - Observability
Service Mesh - Observability
 
GraphQL
GraphQLGraphQL
GraphQL
 
Asynchronous API in Java8, how to use CompletableFuture
Asynchronous API in Java8, how to use CompletableFutureAsynchronous API in Java8, how to use CompletableFuture
Asynchronous API in Java8, how to use CompletableFuture
 
CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton
 
API Management Part 1 - An Introduction to Azure API Management
API Management Part 1 - An Introduction to Azure API ManagementAPI Management Part 1 - An Introduction to Azure API Management
API Management Part 1 - An Introduction to Azure API Management
 
REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & Development
 

Ähnlich wie Api design best practice

Content Strategy and Developer Engagement for DevPortals
Content Strategy and Developer Engagement for DevPortalsContent Strategy and Developer Engagement for DevPortals
Content Strategy and Developer Engagement for DevPortalsAxway
 
MuleSoft Surat Meetup#39 - Pragmatic API Led Connectivity
MuleSoft Surat Meetup#39 - Pragmatic API Led ConnectivityMuleSoft Surat Meetup#39 - Pragmatic API Led Connectivity
MuleSoft Surat Meetup#39 - Pragmatic API Led ConnectivityJitendra Bafna
 
2022 APIsecure_Securing APIs with Open Standards
2022 APIsecure_Securing APIs with Open Standards2022 APIsecure_Securing APIs with Open Standards
2022 APIsecure_Securing APIs with Open StandardsAPIsecure_ Official
 
Oracle API Platform Cloud Service Best Practices & Lessons Learnt
Oracle API Platform Cloud Service Best Practices & Lessons LearntOracle API Platform Cloud Service Best Practices & Lessons Learnt
Oracle API Platform Cloud Service Best Practices & Lessons Learntluisw19
 
Top 7 wrong common beliefs about Enterprise API implementation
Top 7 wrong common beliefs about Enterprise API implementationTop 7 wrong common beliefs about Enterprise API implementation
Top 7 wrong common beliefs about Enterprise API implementationOCTO Technology
 
A Snapshot of API Design Trends In 2019
A Snapshot of API Design Trends In 2019A Snapshot of API Design Trends In 2019
A Snapshot of API Design Trends In 2019Bill Doerrfeld
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
Eran Stiller: API design in the modern era - architecture next 2020
Eran Stiller: API design in the modern era - architecture next 2020 Eran Stiller: API design in the modern era - architecture next 2020
Eran Stiller: API design in the modern era - architecture next 2020 CodeValue
 
API Design in the Modern Era - Architecture Next 2020
API Design in the Modern Era - Architecture Next 2020API Design in the Modern Era - Architecture Next 2020
API Design in the Modern Era - Architecture Next 2020Eran Stiller
 
API Design: Women Who Code (WWCode) DFW
API Design: Women Who Code (WWCode) DFW API Design: Women Who Code (WWCode) DFW
API Design: Women Who Code (WWCode) DFW Axway
 
Sps Boston The Share Point Beast
Sps Boston   The Share Point BeastSps Boston   The Share Point Beast
Sps Boston The Share Point Beastgueste918732
 
Will the Real Public API Please Stand Up? Amir Zuker
Will the Real Public API Please Stand Up? Amir ZukerWill the Real Public API Please Stand Up? Amir Zuker
Will the Real Public API Please Stand Up? Amir ZukerCodeValue
 
What’s behind a high quality web API? Ensure your APIs are more than just a ...
What’s behind a high quality web API? Ensure your APIs are more than just a ...What’s behind a high quality web API? Ensure your APIs are more than just a ...
What’s behind a high quality web API? Ensure your APIs are more than just a ...Kim Clark
 
5 Pillars of Building Enterprise0grade APIs
5 Pillars of Building Enterprise0grade APIs5 Pillars of Building Enterprise0grade APIs
5 Pillars of Building Enterprise0grade APIsWSO2
 
Perth Meetup August 2021
Perth Meetup August 2021Perth Meetup August 2021
Perth Meetup August 2021Michael Price
 
GlueCon 2018: Are REST APIs Still Relevant Today?
GlueCon 2018: Are REST APIs Still Relevant Today?GlueCon 2018: Are REST APIs Still Relevant Today?
GlueCon 2018: Are REST APIs Still Relevant Today?LaunchAny
 

Ähnlich wie Api design best practice (20)

Content Strategy and Developer Engagement for DevPortals
Content Strategy and Developer Engagement for DevPortalsContent Strategy and Developer Engagement for DevPortals
Content Strategy and Developer Engagement for DevPortals
 
MuleSoft Surat Meetup#39 - Pragmatic API Led Connectivity
MuleSoft Surat Meetup#39 - Pragmatic API Led ConnectivityMuleSoft Surat Meetup#39 - Pragmatic API Led Connectivity
MuleSoft Surat Meetup#39 - Pragmatic API Led Connectivity
 
2022 APIsecure_Securing APIs with Open Standards
2022 APIsecure_Securing APIs with Open Standards2022 APIsecure_Securing APIs with Open Standards
2022 APIsecure_Securing APIs with Open Standards
 
Oracle API Platform Cloud Service Best Practices & Lessons Learnt
Oracle API Platform Cloud Service Best Practices & Lessons LearntOracle API Platform Cloud Service Best Practices & Lessons Learnt
Oracle API Platform Cloud Service Best Practices & Lessons Learnt
 
Top 7 wrong common beliefs about Enterprise API implementation
Top 7 wrong common beliefs about Enterprise API implementationTop 7 wrong common beliefs about Enterprise API implementation
Top 7 wrong common beliefs about Enterprise API implementation
 
Octo API-days 2015
Octo API-days 2015Octo API-days 2015
Octo API-days 2015
 
A Snapshot of API Design Trends In 2019
A Snapshot of API Design Trends In 2019A Snapshot of API Design Trends In 2019
A Snapshot of API Design Trends In 2019
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
Eran Stiller: API design in the modern era - architecture next 2020
Eran Stiller: API design in the modern era - architecture next 2020 Eran Stiller: API design in the modern era - architecture next 2020
Eran Stiller: API design in the modern era - architecture next 2020
 
API Design in the Modern Era - Architecture Next 2020
API Design in the Modern Era - Architecture Next 2020API Design in the Modern Era - Architecture Next 2020
API Design in the Modern Era - Architecture Next 2020
 
API Design: Women Who Code (WWCode) DFW
API Design: Women Who Code (WWCode) DFW API Design: Women Who Code (WWCode) DFW
API Design: Women Who Code (WWCode) DFW
 
Sps Boston The Share Point Beast
Sps Boston   The Share Point BeastSps Boston   The Share Point Beast
Sps Boston The Share Point Beast
 
Will the Real Public API Please Stand Up? Amir Zuker
Will the Real Public API Please Stand Up? Amir ZukerWill the Real Public API Please Stand Up? Amir Zuker
Will the Real Public API Please Stand Up? Amir Zuker
 
Public API
Public APIPublic API
Public API
 
Crafting APIs
Crafting APIsCrafting APIs
Crafting APIs
 
What’s behind a high quality web API? Ensure your APIs are more than just a ...
What’s behind a high quality web API? Ensure your APIs are more than just a ...What’s behind a high quality web API? Ensure your APIs are more than just a ...
What’s behind a high quality web API? Ensure your APIs are more than just a ...
 
5 Pillars of Building Enterprise0grade APIs
5 Pillars of Building Enterprise0grade APIs5 Pillars of Building Enterprise0grade APIs
5 Pillars of Building Enterprise0grade APIs
 
Perth Meetup August 2021
Perth Meetup August 2021Perth Meetup August 2021
Perth Meetup August 2021
 
GlueCon 2018: Are REST APIs Still Relevant Today?
GlueCon 2018: Are REST APIs Still Relevant Today?GlueCon 2018: Are REST APIs Still Relevant Today?
GlueCon 2018: Are REST APIs Still Relevant Today?
 
Getting Started with API Management
Getting Started with API ManagementGetting Started with API Management
Getting Started with API Management
 

Mehr von Red Hat

Meetup 2023 - Gateway API.pdf
Meetup 2023 - Gateway API.pdfMeetup 2023 - Gateway API.pdf
Meetup 2023 - Gateway API.pdfRed Hat
 
Meetup 2022 - APIs with Quarkus.pdf
Meetup 2022 - APIs with Quarkus.pdfMeetup 2022 - APIs with Quarkus.pdf
Meetup 2022 - APIs with Quarkus.pdfRed Hat
 
Meetup 2022 - API Gateway landscape.pdf
Meetup 2022 - API Gateway landscape.pdfMeetup 2022 - API Gateway landscape.pdf
Meetup 2022 - API Gateway landscape.pdfRed Hat
 
APIs at the Edge
APIs at the EdgeAPIs at the Edge
APIs at the EdgeRed Hat
 
Opa in the api management world
Opa in the api management worldOpa in the api management world
Opa in the api management worldRed Hat
 
How easy (or hard) it is to monitor your graph ql service performance
How easy (or hard) it is to monitor your graph ql service performanceHow easy (or hard) it is to monitor your graph ql service performance
How easy (or hard) it is to monitor your graph ql service performanceRed Hat
 
Covid impact on digital identity
Covid impact on digital identityCovid impact on digital identity
Covid impact on digital identityRed Hat
 
How do async ap is survive in a rest world
How do async ap is survive in a rest world How do async ap is survive in a rest world
How do async ap is survive in a rest world Red Hat
 
The new (is it really ) api stack
The new (is it really ) api stackThe new (is it really ) api stack
The new (is it really ) api stackRed Hat
 
The case for a unified way of speaking to things
The case for a unified way of speaking to thingsThe case for a unified way of speaking to things
The case for a unified way of speaking to thingsRed Hat
 
What is the best approach to tdd
What is the best approach to tddWhat is the best approach to tdd
What is the best approach to tddRed Hat
 
Leverage event streaming framework to build intelligent applications
Leverage event streaming framework to build intelligent applicationsLeverage event streaming framework to build intelligent applications
Leverage event streaming framework to build intelligent applicationsRed Hat
 
Using Streaming APIs in Production
Using Streaming APIs in ProductionUsing Streaming APIs in Production
Using Streaming APIs in ProductionRed Hat
 
The independence facts
The independence factsThe independence facts
The independence factsRed Hat
 
Api observability
Api observability Api observability
Api observability Red Hat
 
Api service mesh and microservice tooling
Api service mesh and microservice toolingApi service mesh and microservice tooling
Api service mesh and microservice toolingRed Hat
 
Certificate complexity
Certificate complexityCertificate complexity
Certificate complexityRed Hat
 
Lucamaf1 2949-db--winter2013-accomplishment
Lucamaf1 2949-db--winter2013-accomplishmentLucamaf1 2949-db--winter2013-accomplishment
Lucamaf1 2949-db--winter2013-accomplishmentRed Hat
 
certificate game theory
certificate game theorycertificate game theory
certificate game theoryRed Hat
 
statement of accomplishment - heterogeneous parallel programming
statement of accomplishment - heterogeneous parallel programmingstatement of accomplishment - heterogeneous parallel programming
statement of accomplishment - heterogeneous parallel programmingRed Hat
 

Mehr von Red Hat (20)

Meetup 2023 - Gateway API.pdf
Meetup 2023 - Gateway API.pdfMeetup 2023 - Gateway API.pdf
Meetup 2023 - Gateway API.pdf
 
Meetup 2022 - APIs with Quarkus.pdf
Meetup 2022 - APIs with Quarkus.pdfMeetup 2022 - APIs with Quarkus.pdf
Meetup 2022 - APIs with Quarkus.pdf
 
Meetup 2022 - API Gateway landscape.pdf
Meetup 2022 - API Gateway landscape.pdfMeetup 2022 - API Gateway landscape.pdf
Meetup 2022 - API Gateway landscape.pdf
 
APIs at the Edge
APIs at the EdgeAPIs at the Edge
APIs at the Edge
 
Opa in the api management world
Opa in the api management worldOpa in the api management world
Opa in the api management world
 
How easy (or hard) it is to monitor your graph ql service performance
How easy (or hard) it is to monitor your graph ql service performanceHow easy (or hard) it is to monitor your graph ql service performance
How easy (or hard) it is to monitor your graph ql service performance
 
Covid impact on digital identity
Covid impact on digital identityCovid impact on digital identity
Covid impact on digital identity
 
How do async ap is survive in a rest world
How do async ap is survive in a rest world How do async ap is survive in a rest world
How do async ap is survive in a rest world
 
The new (is it really ) api stack
The new (is it really ) api stackThe new (is it really ) api stack
The new (is it really ) api stack
 
The case for a unified way of speaking to things
The case for a unified way of speaking to thingsThe case for a unified way of speaking to things
The case for a unified way of speaking to things
 
What is the best approach to tdd
What is the best approach to tddWhat is the best approach to tdd
What is the best approach to tdd
 
Leverage event streaming framework to build intelligent applications
Leverage event streaming framework to build intelligent applicationsLeverage event streaming framework to build intelligent applications
Leverage event streaming framework to build intelligent applications
 
Using Streaming APIs in Production
Using Streaming APIs in ProductionUsing Streaming APIs in Production
Using Streaming APIs in Production
 
The independence facts
The independence factsThe independence facts
The independence facts
 
Api observability
Api observability Api observability
Api observability
 
Api service mesh and microservice tooling
Api service mesh and microservice toolingApi service mesh and microservice tooling
Api service mesh and microservice tooling
 
Certificate complexity
Certificate complexityCertificate complexity
Certificate complexity
 
Lucamaf1 2949-db--winter2013-accomplishment
Lucamaf1 2949-db--winter2013-accomplishmentLucamaf1 2949-db--winter2013-accomplishment
Lucamaf1 2949-db--winter2013-accomplishment
 
certificate game theory
certificate game theorycertificate game theory
certificate game theory
 
statement of accomplishment - heterogeneous parallel programming
statement of accomplishment - heterogeneous parallel programmingstatement of accomplishment - heterogeneous parallel programming
statement of accomplishment - heterogeneous parallel programming
 

Kürzlich hochgeladen

Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard37
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 

Kürzlich hochgeladen (20)

Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 

Api design best practice

  • 1. API design best practice Luca Ferrari EMEA Solution Architect - Red Hat
  • 2. Meetup objective It is: - A cheat sheet on API design - A starting point for further investigation - My first meetup as speaker It is not: - An explanation of the details of Swagger - Revolutionary perspective on APIs - The answer to all your questions about APIs (there is a networking session for this) 2
  • 3. Agenda ➔ API life & death ➔ API design phase ➔ API design principles ➔ OAS effect ➔ The blacksmith tools ➔ A tool chain 3
  • 4. The (obvious) importance of Web APIs 01 Modern and powerful web browser. 02 The rise of minicomputers (also known as smartphone) and appification 03 The real world adoption of IoT device (Hey Google?) Mashups: https://wheelof.com/lunch/?zip=barcelona&query=lunch&radius=5 04 Simplification of protocols (HTTP rules) 05 New business models the quality of a company’s API design provides a view into how the business truly values developers. 4
  • 8. A simple view of it 8
  • 9. A simple view of it 9 Determine API Business Strategy ● Natural extensions VS innovative model ● Operational efficiency VS company vision and objectives ● Private APIs VS Partner APIs VS Public APIs
  • 10. A simple view of it 10 Prepare and Construct technical requirements and development plans: ● What operations ● How is it managed ● Which methods and protocols ● How big (now and then) ● Is it secure enough ● Is it usable enough ● Human VS Machine usability
  • 11. A simple view of it 11 Promoting the Public API: ● Hackathons ● Documentation ● Omni-channel support ● Public events ● DX vs UX vs UI Fix and Re-Fix: ● Analytics ● Users feedback ● Forums ● Documented and informed changes ● Fix →Feedback →Re-Fix
  • 12. A simple view of it 12 Versioning & Deprecation ● limited usage ● lack of support ● lack of participation ● negative business effects ● privacy and security concern
  • 14. Which path will you take? 14
  • 15. Which path will you take? 15 Design First approach: ● designing the API’s contract first ● new approach ● use of API description formats Code First approach: ● traditional approach ● development of code happening after business requirements ● generating the documentation from the code
  • 16. Which path will you take? 16 Design First advantages: ❏ better DX ❏ consistent design ❏ high re-usage ❏ business critical ❏ omni-channel ❏ better communication Code First advantages: ❏ internal usage ❏ fast prototyping ❏ more automated ❏ agility (in the sense of fast, wrong, retry)
  • 17. API Design microscope 17 Service Description Service Name Domain Knowledge Team-members Organization Schema of data Repository Assertions Scenarios OpenAPI README Tags Definition
  • 18. API Design microscope 18 Base Path Path(s) Verb(s) Parameters Headers Body Beyond Verbs With Actions Media Types Status Codes Filtering* Pagination* Sorting* Response(s) Errors Design
  • 19. API Design microscope 19 Major Minor Road Map Communication Versioning Paths Data Virtualization
  • 20. API Design microscope 20 Scenarios Saved Requests Responses Playback Results Archive Reporting Testing
  • 23. 1. API as a Product 23 ➔ Designate API from the beginning as separate project ➔ Even if it is just for internal usage ➔ Adopt the same action mandated for other products: ● Dedicated communication ● API product management ● API product lifecycle ● API product KPI ● API product sponsoring
  • 24. 2. PoV of the Developer 24 Provider: Organization structure design flaw Developer: The APIs are inconsistent, duplicated and full of holes Provider: Database structure design flaw Developer: I don’t care about the data source structure or technology, as long as you provide it reliably and consistently
  • 25. 3. { ‘Document’: ‘document’ } 25 What makes for a great documentation: 1. Format: a. Easy to read b. Well designed c. Easy to update d. Easy to access 2. Completeness: a. Remember it is a contract b. Various levels of experience and situations 3. Interactive: a. OpenAPI
  • 26. 4. Learning curve 26 Make it easy: 1. Easy to access examples with data 2. Limited mandatory fields 3. Use hypermedia links to suggest actions 4. Offer one way to accomplish common scenarios 5. EXTRA POINTS: provide API based workflows (recipes) and monitor usage
  • 27. 5. consistent, consistent, consistent 27 Predictability here is a good sign: 1. Consistent naming and convention 2. Consistent camel case 3. Consistent resource URLs 4. Consistent payload format 5. Consistent errors format
  • 28. 6. Wait for it … Security ! 28 You don’t want to make the news (here, here) , security should never be an afterthought: 1. Authentication (AuthN): a. Basic Auth b. API key c. OAuth2 2. Authorization (AuthZ) 3. Data Leakage Protection 4. TLS is your friend 5. OWASP: https://www.owasp.org/index.php/REST_Security_Cheat_S heet
  • 29. 7. Guided examples 29 Going beyond Read and Write: 1. Time To First Hello World 2. OnBoarding Total Effort 3. Workflow examples 4. Production ready guidelines
  • 30. 8. EXTRA POINTS: little developer help 30 HTTP client libraries: 1. Right set of programming languages 2. Updated automatically 3. Updated frequently 4. Well explained
  • 33. API specs formats 33 OAS or Swagger: WADL: Bottom up construction W3C spec Most popular Complex Language agnostic YAML or JSON Slate: Minimal adoption RAML: More readable API Blueprint: Less strict Markdown based YAML Low adoption Opinionated Can’t handle complex
  • 34. API specs formats 34 OAS or Swagger: WADL: Bottom up construction W3C spec Most popular Complex Language agnostic YAML or JSON Slate: Minimal adoption RAML: More readable API Blueprint: Less strict Markdown based YAML Low adoption Opinionated Can’t handle complex
  • 36. OAS v3.0 36 SERVERS: ● have multiple URLs are now allowed ● they can be used anywhere (even in PATH) ● PATH templates are now allowed COMPONENTS: ● most of object are defined as components ● componentization (REST principle) responses (existing) parameters (existing) examples (new) requestBodies (new) headers (new) links (new) callbacks (new) schemas (updated) securitySchemes (updated)
  • 37. OAS v3.0 37 requestBody: ● added cookie parameter ● you can add an example (or array of examples) ● it now supports different media types response: ● added wildcard response codes callbacks: ● webhooks support
  • 38. OAS v3.0 38 links: ● hypermedia support ● next action ● pagination support SECURITY: ● multiple flows allowed ● OpenID Connect support
  • 39. OAS v3.0 - links 39 The Link object represents a possible design-time link for a response. The presence of a link does not guarantee the caller's ability to successfully invoke it, rather it provides a known relationship and traversal mechanism between responses and other operations. Clients follow all links at their discretion. Neither permissions, nor the capability to make a successful call to that link, is guaranteed solely by the existence of a relationship.
  • 40. OAS v3.0 - links (example) 40 https://gist.githubusercontent.com/lucamaf/c8c865077586b6291a 133f816ecc799f/raw/7d6254a8b154ef12ae03e5eb7a3717c81bb1 cade/gistfile1.txt
  • 41. OAS v3.0 - callbacks 41 A map of possible out-of band callbacks related to the parent operation. Each value in the map is a Path Item Object that describes a set of requests that may be initiated by the API provider and the expected responses. The key used to identify the callback object is an expression, that identifies a URL to use for the callback operation.
  • 42. OAS v3.0 - callbacks (example) 42 https://gist.githubusercontent.com/lucamaf/d210ae9b04358c3236 78aa5fbaf167a4/raw/323561a45cb156abf632409906da1fcac2e36 083/gistfile1.txt
  • 43. Time for your opinion! 43 https://www.menti.com/
  • 45. Stoplight 45 ● Visual editor ● Integrated mock server ● Collaborative design ● Free Plan ● Non Open Source
  • 47. Restlet 47 ● Visual editor ● Mocking possible ● Collaboration ● Generate server and client SDKs ● Free plan ● Partly open source
  • 49. Apicurio 49 ● Visual editor ● Generate API scaffolding ● Collaboration (real time) ● Support for OAS3 ● Full Open Source
  • 52. Time for your opinion! 52 https://www.menti.com/
  • 54. Complementary tools 54 API Testing Postman, JMeter3 API Mocking Wiremock, Mock-Server, microcks 2 API Design Stoplight, Restlet, Apicurio 1
  • 55. Acknowledgements 55 Adidas ProgrammableWeb Design great web APIs NordicAPIs APIHandyman Zalando Stoplight swaggerhub Restlet apievangelist Apicurio apis-guru (github)
  • 56. Thank you for your time ! Let’s hear feedbacks https://www.menti.com/ 56