SlideShare una empresa de Scribd logo
1 de 40
Managing API
Development
Ciprian Sorlea, CTO
October 2015
20.11.2015
2
Scenario 1
- Dev Team 1 develops the API
- Dev Team 2 and Dev Team 3 use the API
- QA Team 1 tests the API
20.11.2015
3
Scenario 2
- Dev Team 1 develops the 1st API
- Dev Team 2 develops the 2nd API
- Dev Team 3 develops the 3rd API which integrates 1st API and 2nd API
20.11.2015
4
Scenario 3
- Dev Team 1 develops the API
- QA Team tests the API
- A new Dev and a new QA join the team
20.11.2015
5
Scenario 4
- Dev Team 1 develops the 1st API
- Dev Team 2 develops the 2nd API
- Product Management asks Dev Team 1 and Dev Team 2 to merge the 2 API’s
as a public offered API, a new product
What can possibly
go wrong?

20.11.2015
8
Usual and shared challenges
- Different tools and technology stacks used to develop/test/integrating
multiple API’s
- Different teams involved in development, testing and integrating the API’s
- Different experience levels and technical backgrounds
- Different code bases
- Different initial expectations
20.11.2015
9
What do we want to achieve?
We would like to:
- Ensure consistency in API design across all services and products we develop
- Ensure we reuse as much knowledge/experience and code as we can
- Ensure the communication between various teams is as smooth as possible
- Ensure teams can be productive from day one, no matter on which side of the
API they are on.
But wait, haven’t
we solved this 20
years ago with
UML?
20.11.2015
11
What was UML helping us with?
With UML we were able to model various aspects of application design:
- Interactions, behaviors and use cases
- Structure (classes, components, objects)
Is UML the answer
for our API
management
issues?
Could be, but there
is something
better. Better for
API’s.
Introducing
RAML
20.11.2015
15
What is RAML?
- RAML stands for RESTful API Modeling Language
- Can be used to define, document & standardize API Definitions
- It’s vendor neutral, non-proprietary and specs are open source, and it’s a
simple language based on broadly used standards: JSON & YAML
- Can be used along with any client/server technologies, for projects ranging
from small to large
20.11.2015
16
What is RAML?
- RAML is the best source of truth when it comes to defining the REST API
- RAML is the interface and contract established between provider
(implementation/server) and consumer (client app, 3rd party app, mobile app,
QA Automation Scripts, etc.)
20.11.2015
17
RAML Specification Lifecycle
- The team establishes best practices and patters and identifies the
resource types (archetypes) and traits to be defined. This defines the
API standard
- Each endpoint is associated with the required resource types and traits
- Any deviation/customization from the standard offered by the resource
types and traits can be achieved through overriding and extension
- The API contract is therefore being built, based on the agreed standard
20.11.2015
18
RAML Specification Lifecycle
- Provider team develops the API Contract (RAML) according
to the established API standards
- Provider team implements the API according to the contract
- Consumer team use the API based on the contract
- QA team implements the Automation Tests according to the
contract
Let’s review our
previous scenarios
20.11.2015
20
Scenario 1
- Dev Team 1 develops the API according to the RAML contract
- When the API is Ready
- Dev Team 2 and Dev Team 3 use the API, using the RAML contract
(documentation/specification)
- QA Team 1 build the automation scripts using the RAML contract and they test it against the
real API
- While the API is in development
- Dev Team 2 and Dev Team 3 use the mockup API service, generated using the RAML
contract (documentation/specification)
- QA Team 1 build the test automation scripts using the mockup API Service, and then test it
against the real API once it becomes available
20.11.2015
21
Scenario 2
- Dev Team 1 develops the 1st API according to the agreed API Standard
- Dev Team 2 develops the 2nd API according to the agreed API Standard
- Dev Team 3 develops the 3rd API which integrates 1st API and 2nd API, without
any issue, because both API’s are using the same standard
20.11.2015
22
Scenario 3
- Dev Team 1 develops the API, according to the agreed API Standard, using
the RAML contract
- QA Team tests the API, based on the RAML contract
- A new Dev and a new QA join the team. They are quickly ramped up on the
agreed API standards and existing API specifications defined in the RAML
contract
20.11.2015
23
Scenario 4
- Dev Team 1 develops the 1st API, according to the agreed API Standard
- Dev Team 2 develops the 2nd API, according to the agreed API Standard
- Product Management asks Dev Team 1 and Dev Team 2 to merge the 2 API’s
as a public offered API, a new product. This is now possible because the new
API Product will follow the same API Standard, and the merge is now much
easier
Let’s take a closer
look at RAML
20.11.2015
25
Example:
20.11.2015
26
Traits
Traits define various API behaviors, applicable for one/more/all archetypes:
Ex:
- Paged
- Secured
- Filtered
- WithView
- SupportsPartialRetrieve
- CanBeQueryed
20.11.2015
27
Traits
Once a behavior is defined, consistency is ensured in usage:
- same parameters will be used for pagination in all API’s as well as all tests, client
frameworks, etc.
In addition, it’s much clear what can you do with a resource model
20.11.2015
28
Schemas
• Schemas are used to define our resource models
• RAML Schemas are extensions of JSON Schema and XML Schema
• Schemas provide means to quickly validate data but also to proactively build
integrations and clients based on know facts
• Not all custom validation rules can be defined using schema support, so the right
description for each field with custom rules should be defined in readable form.
20.11.2015
29
Schemas
Already have the JSON request/response structure?
Generate the JSON schema using http://jsonschema.net/ .
20.11.2015
30
Resource Types
• Resource Types represent the Archetype (API Architecture) templates
• Each Resource Type can be applied for any number of Resource Models, as
long as the behavior is inherited
• Each resource model can use a single Resource Type
• Resource Types use traits to reuse behaviors and schemas to specify the
resource models being used
20.11.2015
31
Examples
• RAML can include examples of requests / responses, to showcase the usage of
the API
• The examples can be provided for regular flows or for exception / error flows
• Examples can also be provided for XML or JSON content types
20.11.2015
32
Includes
• Includes allow certain API standards (resource types and traits) to be reused
among products / projects
• They also reduce the code complexity on large API definitions
• Included RAML files can be hosted online or next to the files that use them
20.11.2015
33
Editing RAML
• RAML can be edited with any popular IDE / Editor
• Works with IntelliJ/WebStorm, Visual Studio, Atom, Sublime
• Any editor with support for YAML can edit RAML
• Certain extensions / plugins might be needed to enable support or auto-
completion
20.11.2015
34
Where does RAML live?
NEXT TO YOUR CODE
20.11.2015
35
Where does RAML live?
So, we have our API Standard
and our RAML contract.
Can we do anything else with it?
20.11.2015
36
RAML usage scenarios
With RAML you can:
- Generate API Documentation (see https://github.com/kevinrenskers/raml2html )
- Generate Mockup API Service (see https://www.npmjs.com/package/raml-mockup and
https://github.com/farolfo/raml-server)
- Generate boilerplate code using specific parsers for PHP, Ruby, Java, .NET &
Javascript (see http://raml.org/projects.html ) - this can include, but is not limited to:
- API Controllers
- API Client Libraries
20.11.2015
37
RAML usage scenarios
With RAML you can:
- Load it in Postman or SoapUI and immediately start playing with the API
- Automate validation of the API and documentation generation using GULP
Demo Time
Q&A
Thanks for watching.
Now go and build
your cool API!

Más contenido relacionado

La actualidad más candente

Nashik MuleSoft Virtual Meetup#1 - Shared and Dedicated Load Balancer
Nashik MuleSoft Virtual Meetup#1 - Shared and Dedicated Load BalancerNashik MuleSoft Virtual Meetup#1 - Shared and Dedicated Load Balancer
Nashik MuleSoft Virtual Meetup#1 - Shared and Dedicated Load BalancerJitendra Bafna
 
MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021Ieva Navickaite
 
Extend soa with api management Doag18
Extend soa with api management Doag18Extend soa with api management Doag18
Extend soa with api management Doag18Vinay Kumar
 
Introduction to GraphQL
Introduction to GraphQLIntroduction to GraphQL
Introduction to GraphQLKnoldus Inc.
 
Dependency Management on iOS
Dependency Management on iOSDependency Management on iOS
Dependency Management on iOSMake School
 
MuleSoft Surat Virtual Meetup#19 - Identity and Client Management With MuleSoft
MuleSoft Surat Virtual Meetup#19 - Identity and Client Management With MuleSoftMuleSoft Surat Virtual Meetup#19 - Identity and Client Management With MuleSoft
MuleSoft Surat Virtual Meetup#19 - Identity and Client Management With MuleSoftJitendra Bafna
 
MuleSoft Surat Virtual Meetup#3 - Anypoint Custom Policies, API Manager (Prox...
MuleSoft Surat Virtual Meetup#3 - Anypoint Custom Policies, API Manager (Prox...MuleSoft Surat Virtual Meetup#3 - Anypoint Custom Policies, API Manager (Prox...
MuleSoft Surat Virtual Meetup#3 - Anypoint Custom Policies, API Manager (Prox...Jitendra Bafna
 
Introduction to APIs & how to automate APIs testing with selenium web driver?
Introduction to APIs & how to automate APIs testing with selenium web driver?Introduction to APIs & how to automate APIs testing with selenium web driver?
Introduction to APIs & how to automate APIs testing with selenium web driver?BugRaptors
 
MuleSoft Surat Virtual Meetup#20 - Unleash the power of Anypoint DataGraph
MuleSoft Surat Virtual Meetup#20 - Unleash the power of Anypoint DataGraphMuleSoft Surat Virtual Meetup#20 - Unleash the power of Anypoint DataGraph
MuleSoft Surat Virtual Meetup#20 - Unleash the power of Anypoint DataGraphJitendra Bafna
 
API Virtualization: Mocking on Steroids
API Virtualization: Mocking on SteroidsAPI Virtualization: Mocking on Steroids
API Virtualization: Mocking on SteroidsSmartBear
 
Dallas Mulesoft Meetup - Log Aggregation and Elastic Stack on Anypoint Platform
Dallas Mulesoft Meetup - Log Aggregation and Elastic Stack on Anypoint PlatformDallas Mulesoft Meetup - Log Aggregation and Elastic Stack on Anypoint Platform
Dallas Mulesoft Meetup - Log Aggregation and Elastic Stack on Anypoint PlatformAdam DesJardin
 
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...Jitendra Bafna
 
MuleSoft Surat Virtual Meetup#6 - MuleSoft Project Template Using Maven Arche...
MuleSoft Surat Virtual Meetup#6 - MuleSoft Project Template Using Maven Arche...MuleSoft Surat Virtual Meetup#6 - MuleSoft Project Template Using Maven Arche...
MuleSoft Surat Virtual Meetup#6 - MuleSoft Project Template Using Maven Arche...Jitendra Bafna
 
Learn mulesoft from scratch
Learn mulesoft from scratchLearn mulesoft from scratch
Learn mulesoft from scratchNikhil More
 
Evaluating and Testing Web APIs
Evaluating and Testing Web APIsEvaluating and Testing Web APIs
Evaluating and Testing Web APIsSmartBear
 
Data Driven API Testing: Best Practices for Real-World Testing Scenarios
Data Driven API Testing: Best Practices for Real-World Testing ScenariosData Driven API Testing: Best Practices for Real-World Testing Scenarios
Data Driven API Testing: Best Practices for Real-World Testing ScenariosSmartBear
 
EPAM ML/AI Accelerator - ODAHU
EPAM ML/AI Accelerator - ODAHUEPAM ML/AI Accelerator - ODAHU
EPAM ML/AI Accelerator - ODAHUDmitrii Suslov
 

La actualidad más candente (20)

Nashik MuleSoft Virtual Meetup#1 - Shared and Dedicated Load Balancer
Nashik MuleSoft Virtual Meetup#1 - Shared and Dedicated Load BalancerNashik MuleSoft Virtual Meetup#1 - Shared and Dedicated Load Balancer
Nashik MuleSoft Virtual Meetup#1 - Shared and Dedicated Load Balancer
 
MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021
 
Extend soa with api management Doag18
Extend soa with api management Doag18Extend soa with api management Doag18
Extend soa with api management Doag18
 
How to design effective APIs
How to design effective APIsHow to design effective APIs
How to design effective APIs
 
Introduction to GraphQL
Introduction to GraphQLIntroduction to GraphQL
Introduction to GraphQL
 
Dependency Management on iOS
Dependency Management on iOSDependency Management on iOS
Dependency Management on iOS
 
MuleSoft Surat Virtual Meetup#19 - Identity and Client Management With MuleSoft
MuleSoft Surat Virtual Meetup#19 - Identity and Client Management With MuleSoftMuleSoft Surat Virtual Meetup#19 - Identity and Client Management With MuleSoft
MuleSoft Surat Virtual Meetup#19 - Identity and Client Management With MuleSoft
 
MuleSoft Surat Virtual Meetup#3 - Anypoint Custom Policies, API Manager (Prox...
MuleSoft Surat Virtual Meetup#3 - Anypoint Custom Policies, API Manager (Prox...MuleSoft Surat Virtual Meetup#3 - Anypoint Custom Policies, API Manager (Prox...
MuleSoft Surat Virtual Meetup#3 - Anypoint Custom Policies, API Manager (Prox...
 
Spring 5
Spring 5Spring 5
Spring 5
 
Introduction to APIs & how to automate APIs testing with selenium web driver?
Introduction to APIs & how to automate APIs testing with selenium web driver?Introduction to APIs & how to automate APIs testing with selenium web driver?
Introduction to APIs & how to automate APIs testing with selenium web driver?
 
MuleSoft Surat Virtual Meetup#20 - Unleash the power of Anypoint DataGraph
MuleSoft Surat Virtual Meetup#20 - Unleash the power of Anypoint DataGraphMuleSoft Surat Virtual Meetup#20 - Unleash the power of Anypoint DataGraph
MuleSoft Surat Virtual Meetup#20 - Unleash the power of Anypoint DataGraph
 
API Virtualization: Mocking on Steroids
API Virtualization: Mocking on SteroidsAPI Virtualization: Mocking on Steroids
API Virtualization: Mocking on Steroids
 
Api Testing
Api TestingApi Testing
Api Testing
 
Dallas Mulesoft Meetup - Log Aggregation and Elastic Stack on Anypoint Platform
Dallas Mulesoft Meetup - Log Aggregation and Elastic Stack on Anypoint PlatformDallas Mulesoft Meetup - Log Aggregation and Elastic Stack on Anypoint Platform
Dallas Mulesoft Meetup - Log Aggregation and Elastic Stack on Anypoint Platform
 
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
 
MuleSoft Surat Virtual Meetup#6 - MuleSoft Project Template Using Maven Arche...
MuleSoft Surat Virtual Meetup#6 - MuleSoft Project Template Using Maven Arche...MuleSoft Surat Virtual Meetup#6 - MuleSoft Project Template Using Maven Arche...
MuleSoft Surat Virtual Meetup#6 - MuleSoft Project Template Using Maven Arche...
 
Learn mulesoft from scratch
Learn mulesoft from scratchLearn mulesoft from scratch
Learn mulesoft from scratch
 
Evaluating and Testing Web APIs
Evaluating and Testing Web APIsEvaluating and Testing Web APIs
Evaluating and Testing Web APIs
 
Data Driven API Testing: Best Practices for Real-World Testing Scenarios
Data Driven API Testing: Best Practices for Real-World Testing ScenariosData Driven API Testing: Best Practices for Real-World Testing Scenarios
Data Driven API Testing: Best Practices for Real-World Testing Scenarios
 
EPAM ML/AI Accelerator - ODAHU
EPAM ML/AI Accelerator - ODAHUEPAM ML/AI Accelerator - ODAHU
EPAM ML/AI Accelerator - ODAHU
 

Destacado

I Love APIs 2015 API Lab Design-first API Development Using Node and Swagger
I Love APIs 2015 API Lab Design-first API Development Using Node and SwaggerI Love APIs 2015 API Lab Design-first API Development Using Node and Swagger
I Love APIs 2015 API Lab Design-first API Development Using Node and SwaggerApigee | Google Cloud
 
Design-first API Development using Swagger and Node
Design-first API Development using Swagger and NodeDesign-first API Development using Swagger and Node
Design-first API Development using Swagger and NodeApigee | Google Cloud
 
Design Driven API Development
Design Driven API DevelopmentDesign Driven API Development
Design Driven API DevelopmentSokichi Fujita
 
Pitney Bowes Uses Development and Testing Tools to Drive Early API Developmen...
Pitney Bowes Uses Development and Testing Tools to Drive Early API Developmen...Pitney Bowes Uses Development and Testing Tools to Drive Early API Developmen...
Pitney Bowes Uses Development and Testing Tools to Drive Early API Developmen...CA Technologies
 
Case Study: Rogers Communications Integrates CA API Management and CA Service...
Case Study: Rogers Communications Integrates CA API Management and CA Service...Case Study: Rogers Communications Integrates CA API Management and CA Service...
Case Study: Rogers Communications Integrates CA API Management and CA Service...CA Technologies
 
Birds Eye View on API Development - v1.0
Birds Eye View on API Development - v1.0Birds Eye View on API Development - v1.0
Birds Eye View on API Development - v1.0API Talent
 
CA API Management: A DevOps Enabler
CA API Management: A DevOps EnablerCA API Management: A DevOps Enabler
CA API Management: A DevOps EnablerRajat Vijayvargiya
 
Battelfield REST, API Development from the trenches
Battelfield REST, API Development from the trenchesBattelfield REST, API Development from the trenches
Battelfield REST, API Development from the trenchesDaniel Cerecedo
 
Software Product Engineering Life-cycle
Software Product Engineering Life-cycleSoftware Product Engineering Life-cycle
Software Product Engineering Life-cycleDotitude
 
APIs in the Enterprise -Lessons Learned
APIs in the Enterprise -Lessons LearnedAPIs in the Enterprise -Lessons Learned
APIs in the Enterprise -Lessons LearnedApigee | Google Cloud
 
API World 2016 - A five-sided prism polarizing Web API development
API World 2016 - A five-sided prism polarizing Web API developmentAPI World 2016 - A five-sided prism polarizing Web API development
API World 2016 - A five-sided prism polarizing Web API developmentRestlet
 
Another API-Blueprint, RAML and Swagger Comparison
Another API-Blueprint, RAML and Swagger ComparisonAnother API-Blueprint, RAML and Swagger Comparison
Another API-Blueprint, RAML and Swagger ComparisonSmartBear
 
Digital Transformation Journey
Digital Transformation JourneyDigital Transformation Journey
Digital Transformation JourneyClayton Pyne
 
API Maturity Model (Webcast with Accenture)
API Maturity Model (Webcast with Accenture)API Maturity Model (Webcast with Accenture)
API Maturity Model (Webcast with Accenture)Apigee | Google Cloud
 
Agile & SCRUM
Agile & SCRUMAgile & SCRUM
Agile & SCRUMejlp12
 
Design First API's with RAML and SoapUI
Design First API's with RAML and SoapUIDesign First API's with RAML and SoapUI
Design First API's with RAML and SoapUIDaniel Feist
 

Destacado (20)

The 7 deadly sins of a product team
The 7 deadly sins of a product teamThe 7 deadly sins of a product team
The 7 deadly sins of a product team
 
I Love APIs 2015 API Lab Design-first API Development Using Node and Swagger
I Love APIs 2015 API Lab Design-first API Development Using Node and SwaggerI Love APIs 2015 API Lab Design-first API Development Using Node and Swagger
I Love APIs 2015 API Lab Design-first API Development Using Node and Swagger
 
Design-first API Development using Swagger and Node
Design-first API Development using Swagger and NodeDesign-first API Development using Swagger and Node
Design-first API Development using Swagger and Node
 
Design Driven API Development
Design Driven API DevelopmentDesign Driven API Development
Design Driven API Development
 
First steps towards agility
First steps towards agilityFirst steps towards agility
First steps towards agility
 
Pitney Bowes Uses Development and Testing Tools to Drive Early API Developmen...
Pitney Bowes Uses Development and Testing Tools to Drive Early API Developmen...Pitney Bowes Uses Development and Testing Tools to Drive Early API Developmen...
Pitney Bowes Uses Development and Testing Tools to Drive Early API Developmen...
 
Case Study: Rogers Communications Integrates CA API Management and CA Service...
Case Study: Rogers Communications Integrates CA API Management and CA Service...Case Study: Rogers Communications Integrates CA API Management and CA Service...
Case Study: Rogers Communications Integrates CA API Management and CA Service...
 
Birds Eye View on API Development - v1.0
Birds Eye View on API Development - v1.0Birds Eye View on API Development - v1.0
Birds Eye View on API Development - v1.0
 
CA API Management: A DevOps Enabler
CA API Management: A DevOps EnablerCA API Management: A DevOps Enabler
CA API Management: A DevOps Enabler
 
Battelfield REST, API Development from the trenches
Battelfield REST, API Development from the trenchesBattelfield REST, API Development from the trenches
Battelfield REST, API Development from the trenches
 
Software Product Engineering Life-cycle
Software Product Engineering Life-cycleSoftware Product Engineering Life-cycle
Software Product Engineering Life-cycle
 
Raml api designer
Raml   api designerRaml   api designer
Raml api designer
 
APIs in the Enterprise -Lessons Learned
APIs in the Enterprise -Lessons LearnedAPIs in the Enterprise -Lessons Learned
APIs in the Enterprise -Lessons Learned
 
API World 2016 - A five-sided prism polarizing Web API development
API World 2016 - A five-sided prism polarizing Web API developmentAPI World 2016 - A five-sided prism polarizing Web API development
API World 2016 - A five-sided prism polarizing Web API development
 
Another API-Blueprint, RAML and Swagger Comparison
Another API-Blueprint, RAML and Swagger ComparisonAnother API-Blueprint, RAML and Swagger Comparison
Another API-Blueprint, RAML and Swagger Comparison
 
Digital Transformation Journey
Digital Transformation JourneyDigital Transformation Journey
Digital Transformation Journey
 
Scrum and Agile SDLC 101
Scrum and Agile SDLC 101Scrum and Agile SDLC 101
Scrum and Agile SDLC 101
 
API Maturity Model (Webcast with Accenture)
API Maturity Model (Webcast with Accenture)API Maturity Model (Webcast with Accenture)
API Maturity Model (Webcast with Accenture)
 
Agile & SCRUM
Agile & SCRUMAgile & SCRUM
Agile & SCRUM
 
Design First API's with RAML and SoapUI
Design First API's with RAML and SoapUIDesign First API's with RAML and SoapUI
Design First API's with RAML and SoapUI
 

Similar a Managing api development

IBM Integration Bus and REST APIs - Sanjay Nagchowdhury
IBM Integration Bus and REST APIs - Sanjay NagchowdhuryIBM Integration Bus and REST APIs - Sanjay Nagchowdhury
IBM Integration Bus and REST APIs - Sanjay NagchowdhuryKaren Broughton-Mabbitt
 
Creating a mule project with raml and api
Creating a mule project with raml and apiCreating a mule project with raml and api
Creating a mule project with raml and apiBhargav Ranjit
 
Mule api gateway overview
Mule api gateway overviewMule api gateway overview
Mule api gateway overviewSanjeet Pandey
 
Extend soa with api management Sangam18
Extend soa with api management Sangam18Extend soa with api management Sangam18
Extend soa with api management Sangam18Vinay Kumar
 
How to scale 1000s of API Integrations and not lose your mind
How to scale 1000s of API Integrations and not lose your mind How to scale 1000s of API Integrations and not lose your mind
How to scale 1000s of API Integrations and not lose your mind Apigee | Google Cloud
 
Extend soa with api management spoug- Madrid
Extend soa with api management   spoug- MadridExtend soa with api management   spoug- Madrid
Extend soa with api management spoug- MadridVinay Kumar
 
INTERFACE, by apidays - How to Win Friends and Influence People with API First
INTERFACE, by apidays - How to Win Friends and Influence People with API FirstINTERFACE, by apidays - How to Win Friends and Influence People with API First
INTERFACE, by apidays - How to Win Friends and Influence People with API Firstapidays
 
API Best Practices
API Best PracticesAPI Best Practices
API Best PracticesSai Koppala
 
Hia 1691-using iib-to_support_api_economy
Hia 1691-using iib-to_support_api_economyHia 1691-using iib-to_support_api_economy
Hia 1691-using iib-to_support_api_economyAndrew Coleman
 
apidays London 2023 - API Metrics matters in APIOps, Ludovic Pourrat, Lombar...
apidays London 2023 - API Metrics matters in APIOps, Ludovic Pourrat,  Lombar...apidays London 2023 - API Metrics matters in APIOps, Ludovic Pourrat,  Lombar...
apidays London 2023 - API Metrics matters in APIOps, Ludovic Pourrat, Lombar...apidays
 
Api clarity webinar
Api clarity webinarApi clarity webinar
Api clarity webinarLibbySchulze
 
IBM API Connect - overview
IBM API Connect - overviewIBM API Connect - overview
IBM API Connect - overviewRamy Bassem
 
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
 
Boost Your Content Strategy for REST APIs
Boost Your Content Strategy for REST APIsBoost Your Content Strategy for REST APIs
Boost Your Content Strategy for REST APIsMarta Rauch
 
Chicago Mulesoft meetup-08 apr2021
Chicago Mulesoft meetup-08 apr2021Chicago Mulesoft meetup-08 apr2021
Chicago Mulesoft meetup-08 apr2021prasenjit banerjee
 
apidays LIVE Helsinki & North 2022_How to Win Friends and Influence People wi...
apidays LIVE Helsinki & North 2022_How to Win Friends and Influence People wi...apidays LIVE Helsinki & North 2022_How to Win Friends and Influence People wi...
apidays LIVE Helsinki & North 2022_How to Win Friends and Influence People wi...apidays
 

Similar a Managing api development (20)

IBM Integration Bus and REST APIs - Sanjay Nagchowdhury
IBM Integration Bus and REST APIs - Sanjay NagchowdhuryIBM Integration Bus and REST APIs - Sanjay Nagchowdhury
IBM Integration Bus and REST APIs - Sanjay Nagchowdhury
 
Creating a mule project with raml and api
Creating a mule project with raml and apiCreating a mule project with raml and api
Creating a mule project with raml and api
 
Mule api gateway overview
Mule api gateway overviewMule api gateway overview
Mule api gateway overview
 
Extend soa with api management Sangam18
Extend soa with api management Sangam18Extend soa with api management Sangam18
Extend soa with api management Sangam18
 
How to scale 1000s of API Integrations and not lose your mind
How to scale 1000s of API Integrations and not lose your mind How to scale 1000s of API Integrations and not lose your mind
How to scale 1000s of API Integrations and not lose your mind
 
Extend soa with api management spoug- Madrid
Extend soa with api management   spoug- MadridExtend soa with api management   spoug- Madrid
Extend soa with api management spoug- Madrid
 
INTERFACE, by apidays - How to Win Friends and Influence People with API First
INTERFACE, by apidays - How to Win Friends and Influence People with API FirstINTERFACE, by apidays - How to Win Friends and Influence People with API First
INTERFACE, by apidays - How to Win Friends and Influence People with API First
 
API Best Practices
API Best PracticesAPI Best Practices
API Best Practices
 
Hia 1691-using iib-to_support_api_economy
Hia 1691-using iib-to_support_api_economyHia 1691-using iib-to_support_api_economy
Hia 1691-using iib-to_support_api_economy
 
apidays London 2023 - API Metrics matters in APIOps, Ludovic Pourrat, Lombar...
apidays London 2023 - API Metrics matters in APIOps, Ludovic Pourrat,  Lombar...apidays London 2023 - API Metrics matters in APIOps, Ludovic Pourrat,  Lombar...
apidays London 2023 - API Metrics matters in APIOps, Ludovic Pourrat, Lombar...
 
Api clarity webinar
Api clarity webinarApi clarity webinar
Api clarity webinar
 
IBM API Connect - overview
IBM API Connect - overviewIBM API Connect - overview
IBM API Connect - overview
 
2.3.anypoint exchange
2.3.anypoint exchange2.3.anypoint exchange
2.3.anypoint exchange
 
Api tools overview
Api tools overviewApi tools overview
Api tools overview
 
Manchester Meetup #3
Manchester Meetup #3Manchester Meetup #3
Manchester Meetup #3
 
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
 
Boost Your Content Strategy for REST APIs
Boost Your Content Strategy for REST APIsBoost Your Content Strategy for REST APIs
Boost Your Content Strategy for REST APIs
 
Chicago Mulesoft meetup-08 apr2021
Chicago Mulesoft meetup-08 apr2021Chicago Mulesoft meetup-08 apr2021
Chicago Mulesoft meetup-08 apr2021
 
Day 1 axway apim-training
Day 1   axway apim-trainingDay 1   axway apim-training
Day 1 axway apim-training
 
apidays LIVE Helsinki & North 2022_How to Win Friends and Influence People wi...
apidays LIVE Helsinki & North 2022_How to Win Friends and Influence People wi...apidays LIVE Helsinki & North 2022_How to Win Friends and Influence People wi...
apidays LIVE Helsinki & North 2022_How to Win Friends and Influence People wi...
 

Último

How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 

Último (20)

Odoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting ServiceOdoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting Service
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 

Managing api development

  • 2. 20.11.2015 2 Scenario 1 - Dev Team 1 develops the API - Dev Team 2 and Dev Team 3 use the API - QA Team 1 tests the API
  • 3. 20.11.2015 3 Scenario 2 - Dev Team 1 develops the 1st API - Dev Team 2 develops the 2nd API - Dev Team 3 develops the 3rd API which integrates 1st API and 2nd API
  • 4. 20.11.2015 4 Scenario 3 - Dev Team 1 develops the API - QA Team tests the API - A new Dev and a new QA join the team
  • 5. 20.11.2015 5 Scenario 4 - Dev Team 1 develops the 1st API - Dev Team 2 develops the 2nd API - Product Management asks Dev Team 1 and Dev Team 2 to merge the 2 API’s as a public offered API, a new product
  • 6. What can possibly go wrong? 
  • 7.
  • 8. 20.11.2015 8 Usual and shared challenges - Different tools and technology stacks used to develop/test/integrating multiple API’s - Different teams involved in development, testing and integrating the API’s - Different experience levels and technical backgrounds - Different code bases - Different initial expectations
  • 9. 20.11.2015 9 What do we want to achieve? We would like to: - Ensure consistency in API design across all services and products we develop - Ensure we reuse as much knowledge/experience and code as we can - Ensure the communication between various teams is as smooth as possible - Ensure teams can be productive from day one, no matter on which side of the API they are on.
  • 10. But wait, haven’t we solved this 20 years ago with UML?
  • 11. 20.11.2015 11 What was UML helping us with? With UML we were able to model various aspects of application design: - Interactions, behaviors and use cases - Structure (classes, components, objects)
  • 12. Is UML the answer for our API management issues?
  • 13. Could be, but there is something better. Better for API’s.
  • 15. 20.11.2015 15 What is RAML? - RAML stands for RESTful API Modeling Language - Can be used to define, document & standardize API Definitions - It’s vendor neutral, non-proprietary and specs are open source, and it’s a simple language based on broadly used standards: JSON & YAML - Can be used along with any client/server technologies, for projects ranging from small to large
  • 16. 20.11.2015 16 What is RAML? - RAML is the best source of truth when it comes to defining the REST API - RAML is the interface and contract established between provider (implementation/server) and consumer (client app, 3rd party app, mobile app, QA Automation Scripts, etc.)
  • 17. 20.11.2015 17 RAML Specification Lifecycle - The team establishes best practices and patters and identifies the resource types (archetypes) and traits to be defined. This defines the API standard - Each endpoint is associated with the required resource types and traits - Any deviation/customization from the standard offered by the resource types and traits can be achieved through overriding and extension - The API contract is therefore being built, based on the agreed standard
  • 18. 20.11.2015 18 RAML Specification Lifecycle - Provider team develops the API Contract (RAML) according to the established API standards - Provider team implements the API according to the contract - Consumer team use the API based on the contract - QA team implements the Automation Tests according to the contract
  • 20. 20.11.2015 20 Scenario 1 - Dev Team 1 develops the API according to the RAML contract - When the API is Ready - Dev Team 2 and Dev Team 3 use the API, using the RAML contract (documentation/specification) - QA Team 1 build the automation scripts using the RAML contract and they test it against the real API - While the API is in development - Dev Team 2 and Dev Team 3 use the mockup API service, generated using the RAML contract (documentation/specification) - QA Team 1 build the test automation scripts using the mockup API Service, and then test it against the real API once it becomes available
  • 21. 20.11.2015 21 Scenario 2 - Dev Team 1 develops the 1st API according to the agreed API Standard - Dev Team 2 develops the 2nd API according to the agreed API Standard - Dev Team 3 develops the 3rd API which integrates 1st API and 2nd API, without any issue, because both API’s are using the same standard
  • 22. 20.11.2015 22 Scenario 3 - Dev Team 1 develops the API, according to the agreed API Standard, using the RAML contract - QA Team tests the API, based on the RAML contract - A new Dev and a new QA join the team. They are quickly ramped up on the agreed API standards and existing API specifications defined in the RAML contract
  • 23. 20.11.2015 23 Scenario 4 - Dev Team 1 develops the 1st API, according to the agreed API Standard - Dev Team 2 develops the 2nd API, according to the agreed API Standard - Product Management asks Dev Team 1 and Dev Team 2 to merge the 2 API’s as a public offered API, a new product. This is now possible because the new API Product will follow the same API Standard, and the merge is now much easier
  • 24. Let’s take a closer look at RAML
  • 26. 20.11.2015 26 Traits Traits define various API behaviors, applicable for one/more/all archetypes: Ex: - Paged - Secured - Filtered - WithView - SupportsPartialRetrieve - CanBeQueryed
  • 27. 20.11.2015 27 Traits Once a behavior is defined, consistency is ensured in usage: - same parameters will be used for pagination in all API’s as well as all tests, client frameworks, etc. In addition, it’s much clear what can you do with a resource model
  • 28. 20.11.2015 28 Schemas • Schemas are used to define our resource models • RAML Schemas are extensions of JSON Schema and XML Schema • Schemas provide means to quickly validate data but also to proactively build integrations and clients based on know facts • Not all custom validation rules can be defined using schema support, so the right description for each field with custom rules should be defined in readable form.
  • 29. 20.11.2015 29 Schemas Already have the JSON request/response structure? Generate the JSON schema using http://jsonschema.net/ .
  • 30. 20.11.2015 30 Resource Types • Resource Types represent the Archetype (API Architecture) templates • Each Resource Type can be applied for any number of Resource Models, as long as the behavior is inherited • Each resource model can use a single Resource Type • Resource Types use traits to reuse behaviors and schemas to specify the resource models being used
  • 31. 20.11.2015 31 Examples • RAML can include examples of requests / responses, to showcase the usage of the API • The examples can be provided for regular flows or for exception / error flows • Examples can also be provided for XML or JSON content types
  • 32. 20.11.2015 32 Includes • Includes allow certain API standards (resource types and traits) to be reused among products / projects • They also reduce the code complexity on large API definitions • Included RAML files can be hosted online or next to the files that use them
  • 33. 20.11.2015 33 Editing RAML • RAML can be edited with any popular IDE / Editor • Works with IntelliJ/WebStorm, Visual Studio, Atom, Sublime • Any editor with support for YAML can edit RAML • Certain extensions / plugins might be needed to enable support or auto- completion
  • 34. 20.11.2015 34 Where does RAML live? NEXT TO YOUR CODE
  • 35. 20.11.2015 35 Where does RAML live? So, we have our API Standard and our RAML contract. Can we do anything else with it?
  • 36. 20.11.2015 36 RAML usage scenarios With RAML you can: - Generate API Documentation (see https://github.com/kevinrenskers/raml2html ) - Generate Mockup API Service (see https://www.npmjs.com/package/raml-mockup and https://github.com/farolfo/raml-server) - Generate boilerplate code using specific parsers for PHP, Ruby, Java, .NET & Javascript (see http://raml.org/projects.html ) - this can include, but is not limited to: - API Controllers - API Client Libraries
  • 37. 20.11.2015 37 RAML usage scenarios With RAML you can: - Load it in Postman or SoapUI and immediately start playing with the API - Automate validation of the API and documentation generation using GULP
  • 39. Q&A
  • 40. Thanks for watching. Now go and build your cool API!