SlideShare a Scribd company logo
1 of 112
[19th September 2020]: [Undisturbed REST: Achieving
Undisturbed REST (RAML)]
[Kuala Lumpur - Malaysia]
All contents © MuleSoft Inc. 2
• 1.Please keep yourself muted unless you have any question.
• 2.We encourage keeping your video for making our meetup
interactive.
• 3.You'll can also write down your questions in chat section.
• 4.Once you join write down your registered name in chat section so
we will have an attendance.
• 5.As this is our first online Meetup, we appreciate your valuable
feedback. Thanks.
Guidelines for Kuala Lumpur MuleSoft Meetup #1 [Virtual]
All contents © MuleSoft Inc.
Agenda
3
 Introductions
 Important Announcements and Latest Releases/News
 MuleSoft CONNECT:Now 2020
 MuleSoft Anypoint Platform Insiders
 Technical Session - Undisturbed REST: Achieving Undisturbed REST (RAML)
 Q/A and Networking time
All contents © MuleSoft Inc.
Introductions
4
• About the organizers:
– Nitushree Jena
– Manish Yadav
• About the sponsors: MuleSoft , Billennium
A SHOW OF HANDS:
Who is new to this MeetUp?
All contents © MuleSoft Inc.
Organizers
5
All contents © MuleSoft Inc.
Speaker
6
Latest Release/News
Important Announcements
All contents © MuleSoft Inc. 8
• Registration Link: https://connect.mulesoft.com/
• Blog Link
MuleSoft CONNECT:Now 2020
All contents © MuleSoft Inc. 9
• MuleSoft Anypoint Platform Insiders
– As an Insider, you will be able to engage with our product leaders and designers to give
ongoing, real-time, insightful feedback.
– You will be able to see our latest designs, interact with features before release, and give
your impactful opinions through user studies, surveys, and pre-release interviews; across
the entire product development cycle, from idea generation to design to validation.
– You will have access to the online Hub where you can see all the studies that you have
been invited to with participation completely optional and to you and your availability.
– Join us and help drive the future of Anypoint Platform! Send in your nominations.
• Anypoint Studio 7.6.0 Release
Latest Releases/News
All contents © MuleSoft Inc.
Take a stand !
10
• Nominate yourself for
the next meetup speaker
and suggest a topic as
well.
All contents © MuleSoft Inc.
What’s next
11
• Share:
– Tweet your pictures with the hashtag #MuleMeetup #MuleSoftMeetup
– Invite your network to join: https://meetups.mulesoft.com/kuala-lumpur/
– Feedback:
– Contact your organizers Manish Yadav and Nitushree Jena to suggest topics
– Tweet your organizers at @NeetuJena, @Manish_Kyadav.
– Contact MuleSoft at meetup@mulesoft.com for ways to improve the program
– Your Feedback is Food for us
• Our next meetup:
– Date: TBD
– Location: Kuala Lumpur, Malaysia (Virtual)
– Topic: TBD
mike stowe
Achieving Undisturbed REST
All contents © MuleSoft Inc.
Mike Stowe
• API Fanatic
• Open Source Contributor
• Author, Speaker, Consultant
• 15+ Years Hacking Professional Code
• DevRel and Pun Teller at RingCentral
https://mulesoft.com/restbook
All contents © MuleSoft Inc.
All contents © MuleSoft Inc.
All contents © MuleSoft Inc.
IMPORTANT HANDLES
@mikegstowe @ringcentraldevs
This is me. This keeps me from
getting fired…
What is
an API
All contents © MuleSoft Inc.
AN API IS
a way for two applications to
programmatically connect to each
other through a mutual interface.
All contents © MuleSoft Inc.
WHY BUILD A API?
All contents © MuleSoft Inc.
WHY BUILD A API?
All contents © MuleSoft Inc.
WHY BUILD A API?
All contents © MuleSoft Inc.
WEB APIs IN THE REAL WORLD
Today there are over 23,000 public APIs listed on
ProgrammableWeb, however the majority of web-
based APIs are internal APIs – being used for
system to system integrations, partner integrations,
and IoT devices such as smart phones, watches,
security systems, and other devices.
Fun note: in 2014 there were ~11,000 public APIs
All contents © MuleSoft Inc.
All contents © MuleSoft Inc.
Versioning is expensive…
for everyone.
Planning
Your API
All contents © MuleSoft Inc.
I can definitely say that one
of the best investments we
ever made as a company was
in our API. It’s probably the
best marketing we’ve ever
done.”
“
-Ben Chestnut, Owner of MailChimp
All contents © MuleSoft Inc.
I can definitely say our API
was a complete waste of
money...”
“
-Someone else with a very different experience
All contents © MuleSoft Inc.
• Who is your API for?
• What type of API are you building?
• How are you going to maintain your API?
• How are you going to document your API?
• How are you going to let users interact with your API?
• How are you going to manage authentication, provisioning, throttling, and
developer security?
• How are you going to protect your servers against attacks, developer misuse,
etc?
• How are you going to manage support?
Have a Plan:
All contents © MuleSoft Inc.
• Who are your end users?
- Current customers
- Business partners
- Third-party services
• What actions do they need access to?
- This means sitting down and talking to them!
• How can you involve them in the design process?
- Your users should be involved from Day One.
Who Will Be Using Your API?
All contents © MuleSoft Inc.
• List out WHY you are making the API
– Saying that you’re exposing your data to users is not good enough-
explain HOW they will use it
• Explain how your API will interact with existing services
• List out the actions the API needs to be able to handle
– Users: add, edit, reset password, delete, etc…
– Messages: draft, send, retrieve, archive, etc…
• Do only what is NECESSARY
• DON’T get fancy.
What is the Purpose of Your API?
All contents © MuleSoft Inc.
List Out What Your Users Need to be able to Do:
All contents © MuleSoft Inc.
• Are you building a REST, partial REST, SOAP, RPC based, or
GraphQL API?
• Why are you building your API in that format?
• What does that mean for development?
• What does that mean for usability?
• What does that mean for longevity?
What Type of API Are You Building?
All contents © MuleSoft Inc.
All contents © MuleSoft Inc.
• Client-Server
• Stateless
• Cacheable
• Interface/ Uniform Contract
• Layered System
• Code on Demand (optional)
Do You Understand the REST
Constraints?
All contents © MuleSoft Inc.
Most APIs are NOT
RESTful.
Designing
the Spec
All contents © MuleSoft Inc.
Versioning is a necessary
evil.
All contents © MuleSoft Inc.
• Backwards incompatibilities
• Multiple Services to Maintain
• Multiple Systems to Support
• Creates confusion among developers
• Developer adoption is nearly impossible
Problems with Versioning
All contents © MuleSoft Inc.
• Backwards incompatible platform changes
• Your API is no longer extendable
• Your spec is out dated (ie SOAP)
You Need to Version When:
All contents © MuleSoft Inc.
• Added new endpoints
• Added additional data in response
• Changed technologies (java to ruby)
• Changed your application’s services (code)
But You Shouldn’t Version Just Because
You:
All contents © MuleSoft Inc.
Your API should be designed to
avoid having to version it, not as
a “first draft” to be perfected
later.
All contents © MuleSoft Inc.
“...people are fairly good at
short-term design, and
usually awful at long-term
design.”
“
-Dr. Roy Fielding
All contents © MuleSoft Inc.
And a poorly designed API will cost you far
more in the long run, adding months to fix
what could have been prevented in weeks.
There are no shortcuts or quick fixes, you
can either build your API the right way to
begin with, or pay substantially for it in the
long-run.
All contents © MuleSoft Inc.
Use Spec Driven Development
• Define your API before Coding
• Use Design Patterns/ Code Reuse
• Mock and get User Feedback
• Make Necessary Changes
• Start Coding – to the Spec
• DO NOT DEVIATE!
All contents © MuleSoft Inc.
• Standardized – new developers can hit the ground running
• Consistent – uses design patterns and encourages code reuse
• Tested – used in production at companies large and small
• Concrete – becomes the foundation of your API
• Immutable – cannot be changed on the fly or by deleting code
• Persistent – allows evolution without breaking the API contract
Why Spec Driven Development?
All contents © MuleSoft Inc.
Spec Driven Development means a two
stage, agile design and development
process. You should develop your spec
iteratively, incorporating agile user testing.
Then your development should be agile,
utilizing TDD – however - your API should be
static, driven by the spec with no deviation.
All contents © MuleSoft Inc.
Hybrid Approach
Design Development
Continuous, fluid, changeable Static… No turns
All contents © MuleSoft Inc.
The Agile Design Cycle
This creates a
continuous cycle of
agile user testing of our
design, ensuring we
meet costumers’ needs
and have a well
thought-out, carefully
designed and tested
API – before writing a
single line of code
All contents © MuleSoft Inc.
• RAML
• IO Docs
• Swagger/ OAI
• API Blueprint
Choosing a Spec:
All contents © MuleSoft Inc.
API Blueprint RAML Swagger / OAI
https://ringcentr.al/api-specs
All contents © MuleSoft Inc.
• You can define your API in just a few lines of code
• You can see what it would look like as you go
• You can quickly prototype it for devs to try
• You can quickly make tweaks/ changes
• You can easily document your API
• You can let developers try your API online
• You can let developers interact with your and other APIs
• Generate SDKs/ client libraries for your API (REST United, APIMatic.io)
Using RAML You Can:
All contents © MuleSoft Inc.
• You can use data models and design patterns
• You can reuse code (libraries, overlays, traits,
resourceTypes)
More Importantly…
resourceTypes:
- collection:
description: Collection of available <<resourcePathName>> in Jukebox.
get:
description: Get a list of <<resourcePathName>>.
responses:
200:
body:
application/json:
example: |
<<exampleCollection>>
All contents © MuleSoft Inc.
What Does RAML Look Like?
#%RAML 1.0
title: World Music API
baseUri: http://example.api.com/{version}
version: v1
/playlists:
get:
responses:
200:
body:
application/json:
example: |
{
“playlistID” : 1,
“playlistName” : “My Awesome Playlist”,
“genre” : “top40”,
“songs” : 40
}
All contents © MuleSoft Inc.
The RAML API Designer
All contents © MuleSoft Inc.
The RAML API Designer
All contents © MuleSoft Inc.
Remember, your spec is not a one-and-
done, rather it is the blueprint for your
API. Anytime you do something to your
API you should be modifying the spec
and going through user testing before
writing code. You should never have
code that does something not defined
by your spec.
Prototyping
All contents © MuleSoft Inc.
The RAML API Designer
All contents © MuleSoft Inc.
All contents © MuleSoft Inc.
All contents © MuleSoft Inc.
Developers do not want to
code against an API that is
just going to be thrown
away or might change the
next day.”
“
-Gareth Jones, Principle API Architect, Microsoft OneNote
All contents © MuleSoft Inc.
getpostman.com
All contents © MuleSoft Inc.
apinotebook.com
All contents © MuleSoft Inc.
Remember, hands on user feedback is
CRUCIAL to the success of your API,
ensuring developers can not only use
your API, but that it meets their needs.
All contents © MuleSoft Inc.
Once your spec is finalized, you can now
use the prototype to enable parallel
development, significantly reducing
time to market.
Designing
Your
Resources
All contents © MuleSoft Inc.
Use Nouns.
All contents © MuleSoft Inc.
Plural == Collection.
All contents © MuleSoft Inc.
Use:
/users
Not:
/createUser
/getUser
/deleteUser
Use:
/addresses
Not:
/address
/user/address
/getAddress
Designing
Your Methods
All contents © MuleSoft Inc.
Remember CRUD.
All contents © MuleSoft Inc.
Create (POST)
Read (GET)
Update (PUT/ PATCH)
Delete (DELETE)
Handling
Responses
All contents © MuleSoft Inc.
Use Accept/
Content-Type Headers.
All contents © MuleSoft Inc.
Using headers gives you flexibility to support multiple
types of formats from the same resource without
worrying about breaking backwards compatibility.
Most common:
• application/json - wider language support
• application/xml
Use Accept/ Content-Type Headers
All contents © MuleSoft Inc.
Use Response
Codes.
All contents © MuleSoft Inc.
200 – OK
201 – Created
304 – Not modified
400 – Bad Request
401 – Not Authorized
403 – Forbidden
404 – Page/ Resource Not Found
405 – Method Not Allowed
415 – Unsupported Media Type
500 – Internal Server Error
All contents © MuleSoft Inc.
418 – I’m a Teapot…
420 – Enhance Your Calm
501 –
Or if you’re feeling super creative…
All contents © MuleSoft Inc.
Use Descriptive
Error Messages.
All contents © MuleSoft Inc.
{
'error' {
'code' : 'e3526',
'message' : 'Missing UserID',
'description' : 'A UserID is required to edit a user.',
'link' : 'http://docs.mysite.com/errors/e3526/'
}
}
The more information you provide, the easier it
will be for developers to integrate your API
without contacting Support.
All contents © MuleSoft Inc.
• vnd.error
• Google Errors
• JSON API
Common Descriptive Error Formats
All contents © MuleSoft Inc.
Don’t forget Cache.
Adding
Hypermedia10
All contents © MuleSoft Inc.
Wait!?
What is Hypermedia.
HATEOAS
Hypercard, originally released in 1987
(Hypercard clone HyperStudio shown)
Oregon Trail, originally released in 1971
The internet, with the first .COM (symbolics.com) being
registered in 1985
All contents © MuleSoft Inc.
CPHL
{
"data" : {
"user" : {
"fname" : "Mike",
"lname" : "Stowe",
"_links" : {
"edit" : {
"href" : "/api/user/id/1",
"methods" : ["put", "patch"]
},
"messages": {
"href" : "/api/message/id/1/lname/last”,
"methods" : ["post"]
}
}
}
}
}
All contents © MuleSoft Inc.
All contents © MuleSoft Inc.
Hypermedia is the catalyst that removes
business logic from the client, allowing for
the free evolution of the API (or server).
All contents © MuleSoft Inc.
{
"firstName" : "Mike",
"lastName" : "Stowe",
"_links" : {
"message" : {
"href" : "/api/messages/?user=1",
"methods" : ["put", "patch"]
}
}
}
All contents © MuleSoft Inc.
{
"firstName" : "Mike",
"lastName" : "Stowe",
"_links" : {
"message" : {
"href" : "/api/messages/?user=1&tkn=123",
"methods" : ["put", "patch"]
}
}
}
All contents © MuleSoft Inc.
• HAL
• JSON-LD
• JSON API
• Collection+JSON
• Siren
• CPHL*
Most Popular Hypertext Link Specs
All contents © MuleSoft Inc.
HAL/CPHL"_links" : {
"edit" : {
"href" : "/api/user/id/1",
"methods" : ["put", "patch"]
},
"messages": {
"href" : "/api/message/id/1/lname/last”,
"methods" : ["post"]
}
}
Documentatio
n
& API Sharing
12
All contents © MuleSoft Inc.
• A clear explanation of what the method/resource does
• Call outs that share important information with developers, including warnings and errors
• A sample call with the correlating media type body
• A list of parameters used on this resource/method, as well as their types, special
formatting, rules and whether or not they are required
• A sample response, including media type body
• Code examples for multiple languages including all necessary code (e.g. Curl with PHP,
as well as examples for Java, .Net, Ruby, etc.)
Creating GREAT Documentation
All contents © MuleSoft Inc.
• SDK examples (if SDKs are provided) showing how to access the
resource/method utilizing the SDK for their language
• Interactive experiences to try/test API calls (API Console, API Notebook)
• Frequently asked questions/scenarios with code examples
• Links to additional resources (other examples, blogs, etc.)
• A comments section where users can share/discuss code
• Other support resources (forums, contact forms, etc.)
Creating GREAT Documentation
All contents © MuleSoft Inc.
Be sure to keep your documentation up to
date and simple enough for developers to
quickly find and implement solutions to
even the most complex problems.
Poor documentation has been the
death of many an API.
5 Minute – Always up to date documentation
(raml.org/projects)
A Final
Thought13
All contents © MuleSoft Inc.
It only takes ONE little thing to significantly
reduce your API’s life span. Every action
you make on your API must be carefully
thought out and tested BEFORE being
pushed to production.
All contents © MuleSoft Inc.
Remember...
All contents © MuleSoft Inc.
Building an API is easy.
All contents © MuleSoft Inc.
Designing an API
is hard.
Get the
Workshop
https://undisturbedrest.com
Tweet me
@mikegstowe
Thank you!
Networking time
Introduce yourself to your neighbors!
See you next time
Please send topic suggestions to the organizer
THANK YOU
MuleSoft Meetup slides_kualalumpur_19thSept_Undisturbed REST: Achieving Undisturbed REST

More Related Content

What's hot

MuleSoft CloudHub API Versioning
MuleSoft CloudHub API VersioningMuleSoft CloudHub API Versioning
MuleSoft CloudHub API VersioningPatryk Bandurski
 
Warsaw MuleSoft Meetup #6 - CI/CD
Warsaw MuleSoft Meetup  #6 - CI/CDWarsaw MuleSoft Meetup  #6 - CI/CD
Warsaw MuleSoft Meetup #6 - CI/CDPatryk Bandurski
 
Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...
Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...
Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...Angel Alberici
 
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...Jitendra Bafna
 
Error Handling in Mulesoft
Error Handling in MulesoftError Handling in Mulesoft
Error Handling in MulesoftAmit Singh
 
DataWeave and Error Handling Meetup at SF Tower Sept 24th
DataWeave and Error Handling Meetup at SF Tower Sept 24thDataWeave and Error Handling Meetup at SF Tower Sept 24th
DataWeave and Error Handling Meetup at SF Tower Sept 24thJordan Schuetz
 
Mule soft meetup_virtual_ 3_charlotte_07july_2021__final
Mule soft meetup_virtual_ 3_charlotte_07july_2021__finalMule soft meetup_virtual_ 3_charlotte_07july_2021__final
Mule soft meetup_virtual_ 3_charlotte_07july_2021__finalSubhash Patel
 
MuleSoft Nashik Virtual Meetup#4 - Implementing CI/CD pipeline for deploying ...
MuleSoft Nashik Virtual Meetup#4 - Implementing CI/CD pipeline for deploying ...MuleSoft Nashik Virtual Meetup#4 - Implementing CI/CD pipeline for deploying ...
MuleSoft Nashik Virtual Meetup#4 - Implementing CI/CD pipeline for deploying ...Jitendra Bafna
 
On prem to cloud hub migration (updated)
On prem to cloud hub migration (updated)On prem to cloud hub migration (updated)
On prem to cloud hub migration (updated)Sandeep Deshmukh
 
Hyd MuleSoft-Meetup-May 29,2021 | Migrating Mule 3 Java related code to Mule 4
Hyd MuleSoft-Meetup-May 29,2021 | Migrating Mule 3 Java related code to Mule 4Hyd MuleSoft-Meetup-May 29,2021 | Migrating Mule 3 Java related code to Mule 4
Hyd MuleSoft-Meetup-May 29,2021 | Migrating Mule 3 Java related code to Mule 4Sravan Lingam
 
Special MuleSoft Meetup at London CONNECT
Special MuleSoft Meetup at London CONNECTSpecial MuleSoft Meetup at London CONNECT
Special MuleSoft Meetup at London CONNECTSabrina Marechal
 
Indore MuleSoft Meetup #4 : Demystifying Error Handling & Snowflake Integration
Indore MuleSoft Meetup #4 : Demystifying Error Handling & Snowflake IntegrationIndore MuleSoft Meetup #4 : Demystifying Error Handling & Snowflake Integration
Indore MuleSoft Meetup #4 : Demystifying Error Handling & Snowflake IntegrationIndoreMulesoftMeetup
 
Warsaw mulesoft meetup #9 mastering integration with salesforce
Warsaw mulesoft meetup #9 mastering integration with salesforceWarsaw mulesoft meetup #9 mastering integration with salesforce
Warsaw mulesoft meetup #9 mastering integration with salesforcePatryk Bandurski
 
Ahmadabad mule soft_meetup_11_october_2020_errorhanlingandmonitoringalerts
Ahmadabad mule soft_meetup_11_october_2020_errorhanlingandmonitoringalertsAhmadabad mule soft_meetup_11_october_2020_errorhanlingandmonitoringalerts
Ahmadabad mule soft_meetup_11_october_2020_errorhanlingandmonitoringalertsShekh Muenuddeen
 
Coimbatore meetup error handling 24apr2021
Coimbatore meetup error handling 24apr2021Coimbatore meetup error handling 24apr2021
Coimbatore meetup error handling 24apr2021Anoop Ramachandran
 
Nagpur MuleSoft Meetup Group - Working with API Groups in Mulesoft
Nagpur MuleSoft Meetup Group - Working with API Groups in Mulesoft Nagpur MuleSoft Meetup Group - Working with API Groups in Mulesoft
Nagpur MuleSoft Meetup Group - Working with API Groups in Mulesoft NaimishKakkad2
 
Caching strategies in MuleSoft
Caching strategies in MuleSoftCaching strategies in MuleSoft
Caching strategies in MuleSoftNeerajKumar1965
 

What's hot (19)

MuleSoft CloudHub API Versioning
MuleSoft CloudHub API VersioningMuleSoft CloudHub API Versioning
MuleSoft CloudHub API Versioning
 
Warsaw MuleSoft Meetup #6 - CI/CD
Warsaw MuleSoft Meetup  #6 - CI/CDWarsaw MuleSoft Meetup  #6 - CI/CD
Warsaw MuleSoft Meetup #6 - CI/CD
 
Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...
Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...
Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...
 
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
 
Mule ESB- Data Validation- Best Practices
Mule ESB-  Data Validation- Best PracticesMule ESB-  Data Validation- Best Practices
Mule ESB- Data Validation- Best Practices
 
Error Handling in Mulesoft
Error Handling in MulesoftError Handling in Mulesoft
Error Handling in Mulesoft
 
Mule meetup 25thjan
Mule meetup 25thjanMule meetup 25thjan
Mule meetup 25thjan
 
DataWeave and Error Handling Meetup at SF Tower Sept 24th
DataWeave and Error Handling Meetup at SF Tower Sept 24thDataWeave and Error Handling Meetup at SF Tower Sept 24th
DataWeave and Error Handling Meetup at SF Tower Sept 24th
 
Mule soft meetup_virtual_ 3_charlotte_07july_2021__final
Mule soft meetup_virtual_ 3_charlotte_07july_2021__finalMule soft meetup_virtual_ 3_charlotte_07july_2021__final
Mule soft meetup_virtual_ 3_charlotte_07july_2021__final
 
MuleSoft Nashik Virtual Meetup#4 - Implementing CI/CD pipeline for deploying ...
MuleSoft Nashik Virtual Meetup#4 - Implementing CI/CD pipeline for deploying ...MuleSoft Nashik Virtual Meetup#4 - Implementing CI/CD pipeline for deploying ...
MuleSoft Nashik Virtual Meetup#4 - Implementing CI/CD pipeline for deploying ...
 
On prem to cloud hub migration (updated)
On prem to cloud hub migration (updated)On prem to cloud hub migration (updated)
On prem to cloud hub migration (updated)
 
Hyd MuleSoft-Meetup-May 29,2021 | Migrating Mule 3 Java related code to Mule 4
Hyd MuleSoft-Meetup-May 29,2021 | Migrating Mule 3 Java related code to Mule 4Hyd MuleSoft-Meetup-May 29,2021 | Migrating Mule 3 Java related code to Mule 4
Hyd MuleSoft-Meetup-May 29,2021 | Migrating Mule 3 Java related code to Mule 4
 
Special MuleSoft Meetup at London CONNECT
Special MuleSoft Meetup at London CONNECTSpecial MuleSoft Meetup at London CONNECT
Special MuleSoft Meetup at London CONNECT
 
Indore MuleSoft Meetup #4 : Demystifying Error Handling & Snowflake Integration
Indore MuleSoft Meetup #4 : Demystifying Error Handling & Snowflake IntegrationIndore MuleSoft Meetup #4 : Demystifying Error Handling & Snowflake Integration
Indore MuleSoft Meetup #4 : Demystifying Error Handling & Snowflake Integration
 
Warsaw mulesoft meetup #9 mastering integration with salesforce
Warsaw mulesoft meetup #9 mastering integration with salesforceWarsaw mulesoft meetup #9 mastering integration with salesforce
Warsaw mulesoft meetup #9 mastering integration with salesforce
 
Ahmadabad mule soft_meetup_11_october_2020_errorhanlingandmonitoringalerts
Ahmadabad mule soft_meetup_11_october_2020_errorhanlingandmonitoringalertsAhmadabad mule soft_meetup_11_october_2020_errorhanlingandmonitoringalerts
Ahmadabad mule soft_meetup_11_october_2020_errorhanlingandmonitoringalerts
 
Coimbatore meetup error handling 24apr2021
Coimbatore meetup error handling 24apr2021Coimbatore meetup error handling 24apr2021
Coimbatore meetup error handling 24apr2021
 
Nagpur MuleSoft Meetup Group - Working with API Groups in Mulesoft
Nagpur MuleSoft Meetup Group - Working with API Groups in Mulesoft Nagpur MuleSoft Meetup Group - Working with API Groups in Mulesoft
Nagpur MuleSoft Meetup Group - Working with API Groups in Mulesoft
 
Caching strategies in MuleSoft
Caching strategies in MuleSoftCaching strategies in MuleSoft
Caching strategies in MuleSoft
 

Similar to MuleSoft Meetup slides_kualalumpur_19thSept_Undisturbed REST: Achieving Undisturbed REST

Building Your API for Longevity
Building Your API for LongevityBuilding Your API for Longevity
Building Your API for LongevityMuleSoft
 
Learn mulesoft from scratch
Learn mulesoft from scratchLearn mulesoft from scratch
Learn mulesoft from scratchNikhil More
 
West Yorkshire Mulesoft Meetup #5
West Yorkshire Mulesoft Meetup #5West Yorkshire Mulesoft Meetup #5
West Yorkshire Mulesoft Meetup #5Francis Edwards
 
Manila MuleSoft Meetup #4 January 2019
Manila MuleSoft Meetup #4 January 2019Manila MuleSoft Meetup #4 January 2019
Manila MuleSoft Meetup #4 January 2019Christopher Co
 
MuleSoft Surat Meetup#51 - API Monitoring - Through a New Lens
MuleSoft Surat Meetup#51 - API Monitoring - Through a New LensMuleSoft Surat Meetup#51 - API Monitoring - Through a New Lens
MuleSoft Surat Meetup#51 - API Monitoring - Through a New LensJitendra Bafna
 
Meetup slide 19th oct
Meetup slide 19th octMeetup slide 19th oct
Meetup slide 19th octSantosh Ojha
 
Manila MuleSoft Meetup - July 2019
Manila MuleSoft Meetup - July 2019Manila MuleSoft Meetup - July 2019
Manila MuleSoft Meetup - July 2019Ryan Anthony Andal
 
MuleSoft Meetup Winnipeg: Maiden Edition
MuleSoft Meetup Winnipeg: Maiden EditionMuleSoft Meetup Winnipeg: Maiden Edition
MuleSoft Meetup Winnipeg: Maiden EditionMannaAkpan
 
Building a REST API for Longevity
Building a REST API for LongevityBuilding a REST API for Longevity
Building a REST API for LongevityMuleSoft
 
Riyadh Meetup4- Sonarqube for Mule 4 Code review
Riyadh Meetup4- Sonarqube for Mule 4 Code reviewRiyadh Meetup4- Sonarqube for Mule 4 Code review
Riyadh Meetup4- Sonarqube for Mule 4 Code reviewsatyasekhar123
 
MuleSoft Meetup Charlotte 2019
MuleSoft Meetup Charlotte  2019MuleSoft Meetup Charlotte  2019
MuleSoft Meetup Charlotte 2019Subhash Patel
 
DevOps and APIs: Great Alone, Better Together
DevOps and APIs: Great Alone, Better Together DevOps and APIs: Great Alone, Better Together
DevOps and APIs: Great Alone, Better Together MuleSoft
 
Delhi MuleSoft Meetup - 19 march2022
Delhi MuleSoft Meetup - 19 march2022Delhi MuleSoft Meetup - 19 march2022
Delhi MuleSoft Meetup - 19 march2022AnuragSharma900
 
MuleSoft Meetup Singapore - Reliable Messaging & RTF Operations
MuleSoft Meetup Singapore - Reliable Messaging & RTF OperationsMuleSoft Meetup Singapore - Reliable Messaging & RTF Operations
MuleSoft Meetup Singapore - Reliable Messaging & RTF OperationsJulian Douch
 
Hyderabad meet up-sep12
Hyderabad meet up-sep12Hyderabad meet up-sep12
Hyderabad meet up-sep12Sravan Lingam
 
Mexico City Online Mulesoft Meetup - Quality Code with MUNIT - May 4, 2020
Mexico City Online Mulesoft Meetup - Quality Code with MUNIT - May 4, 2020Mexico City Online Mulesoft Meetup - Quality Code with MUNIT - May 4, 2020
Mexico City Online Mulesoft Meetup - Quality Code with MUNIT - May 4, 2020Ricardo Rodríguez
 

Similar to MuleSoft Meetup slides_kualalumpur_19thSept_Undisturbed REST: Achieving Undisturbed REST (20)

Building Your API for Longevity
Building Your API for LongevityBuilding Your API for Longevity
Building Your API for Longevity
 
Learn mulesoft from scratch
Learn mulesoft from scratchLearn mulesoft from scratch
Learn mulesoft from scratch
 
Managing APIs with MuleSoft
Managing APIs with MuleSoftManaging APIs with MuleSoft
Managing APIs with MuleSoft
 
West Yorkshire Mulesoft Meetup #5
West Yorkshire Mulesoft Meetup #5West Yorkshire Mulesoft Meetup #5
West Yorkshire Mulesoft Meetup #5
 
Manila MuleSoft Meetup #4 January 2019
Manila MuleSoft Meetup #4 January 2019Manila MuleSoft Meetup #4 January 2019
Manila MuleSoft Meetup #4 January 2019
 
MuleSoft Surat Meetup#51 - API Monitoring - Through a New Lens
MuleSoft Surat Meetup#51 - API Monitoring - Through a New LensMuleSoft Surat Meetup#51 - API Monitoring - Through a New Lens
MuleSoft Surat Meetup#51 - API Monitoring - Through a New Lens
 
Meetup slide 19th oct
Meetup slide 19th octMeetup slide 19th oct
Meetup slide 19th oct
 
Manila MuleSoft Meetup - July 2019
Manila MuleSoft Meetup - July 2019Manila MuleSoft Meetup - July 2019
Manila MuleSoft Meetup - July 2019
 
MuleSoft Meetup Winnipeg: Maiden Edition
MuleSoft Meetup Winnipeg: Maiden EditionMuleSoft Meetup Winnipeg: Maiden Edition
MuleSoft Meetup Winnipeg: Maiden Edition
 
Building a REST API for Longevity
Building a REST API for LongevityBuilding a REST API for Longevity
Building a REST API for Longevity
 
Mulesoft Indore meetup #1
Mulesoft Indore meetup #1Mulesoft Indore meetup #1
Mulesoft Indore meetup #1
 
Cracow MuleSoft Meetup #1
Cracow MuleSoft Meetup #1Cracow MuleSoft Meetup #1
Cracow MuleSoft Meetup #1
 
Riyadh Meetup4- Sonarqube for Mule 4 Code review
Riyadh Meetup4- Sonarqube for Mule 4 Code reviewRiyadh Meetup4- Sonarqube for Mule 4 Code review
Riyadh Meetup4- Sonarqube for Mule 4 Code review
 
MuleSoft Meetup Charlotte 2019
MuleSoft Meetup Charlotte  2019MuleSoft Meetup Charlotte  2019
MuleSoft Meetup Charlotte 2019
 
DevOps and APIs: Great Alone, Better Together
DevOps and APIs: Great Alone, Better Together DevOps and APIs: Great Alone, Better Together
DevOps and APIs: Great Alone, Better Together
 
MuleSoft São Paulo Meetup #3 - 18 Jun
MuleSoft São Paulo Meetup #3 - 18 JunMuleSoft São Paulo Meetup #3 - 18 Jun
MuleSoft São Paulo Meetup #3 - 18 Jun
 
Delhi MuleSoft Meetup - 19 march2022
Delhi MuleSoft Meetup - 19 march2022Delhi MuleSoft Meetup - 19 march2022
Delhi MuleSoft Meetup - 19 march2022
 
MuleSoft Meetup Singapore - Reliable Messaging & RTF Operations
MuleSoft Meetup Singapore - Reliable Messaging & RTF OperationsMuleSoft Meetup Singapore - Reliable Messaging & RTF Operations
MuleSoft Meetup Singapore - Reliable Messaging & RTF Operations
 
Hyderabad meet up-sep12
Hyderabad meet up-sep12Hyderabad meet up-sep12
Hyderabad meet up-sep12
 
Mexico City Online Mulesoft Meetup - Quality Code with MUNIT - May 4, 2020
Mexico City Online Mulesoft Meetup - Quality Code with MUNIT - May 4, 2020Mexico City Online Mulesoft Meetup - Quality Code with MUNIT - May 4, 2020
Mexico City Online Mulesoft Meetup - Quality Code with MUNIT - May 4, 2020
 

More from Manish Kumar Yadav

Building Custom Connectors Using XML SDK in Mule 4
Building Custom Connectors Using XML SDK in Mule 4Building Custom Connectors Using XML SDK in Mule 4
Building Custom Connectors Using XML SDK in Mule 4Manish Kumar Yadav
 
Solace PubSub+ MuleSoft Connector for Mule 4
Solace PubSub+ MuleSoft Connector for Mule 4Solace PubSub+ MuleSoft Connector for Mule 4
Solace PubSub+ MuleSoft Connector for Mule 4Manish Kumar Yadav
 
Creating MuleSoft API Template Project Using Maven Archetype
Creating MuleSoft API Template Project Using Maven ArchetypeCreating MuleSoft API Template Project Using Maven Archetype
Creating MuleSoft API Template Project Using Maven ArchetypeManish Kumar Yadav
 
MuleSoft Integration with AWS Cognito Client Credentials and Mule JWT Validat...
MuleSoft Integration with AWS Cognito Client Credentials and Mule JWT Validat...MuleSoft Integration with AWS Cognito Client Credentials and Mule JWT Validat...
MuleSoft Integration with AWS Cognito Client Credentials and Mule JWT Validat...Manish Kumar Yadav
 
MuleSoft Clustring, Okta, CI/CD Integration with Jenkins
MuleSoft Clustring, Okta, CI/CD Integration with JenkinsMuleSoft Clustring, Okta, CI/CD Integration with Jenkins
MuleSoft Clustring, Okta, CI/CD Integration with JenkinsManish Kumar Yadav
 
Power of Transformation with DataWeave 2.X Engine
Power of Transformation with DataWeave 2.X EnginePower of Transformation with DataWeave 2.X Engine
Power of Transformation with DataWeave 2.X EngineManish Kumar Yadav
 
Mumbai MuleSoft Meetup:Batch Processing, Anypoint Messaging Queue and Custom ...
Mumbai MuleSoft Meetup:Batch Processing, Anypoint Messaging Queue and Custom ...Mumbai MuleSoft Meetup:Batch Processing, Anypoint Messaging Queue and Custom ...
Mumbai MuleSoft Meetup:Batch Processing, Anypoint Messaging Queue and Custom ...Manish Kumar Yadav
 
Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...
Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...
Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...Manish Kumar Yadav
 
MuleSoft Meetup Mumbai Mule 4 Presentation Slide
MuleSoft Meetup Mumbai Mule 4 Presentation SlideMuleSoft Meetup Mumbai Mule 4 Presentation Slide
MuleSoft Meetup Mumbai Mule 4 Presentation SlideManish Kumar Yadav
 

More from Manish Kumar Yadav (9)

Building Custom Connectors Using XML SDK in Mule 4
Building Custom Connectors Using XML SDK in Mule 4Building Custom Connectors Using XML SDK in Mule 4
Building Custom Connectors Using XML SDK in Mule 4
 
Solace PubSub+ MuleSoft Connector for Mule 4
Solace PubSub+ MuleSoft Connector for Mule 4Solace PubSub+ MuleSoft Connector for Mule 4
Solace PubSub+ MuleSoft Connector for Mule 4
 
Creating MuleSoft API Template Project Using Maven Archetype
Creating MuleSoft API Template Project Using Maven ArchetypeCreating MuleSoft API Template Project Using Maven Archetype
Creating MuleSoft API Template Project Using Maven Archetype
 
MuleSoft Integration with AWS Cognito Client Credentials and Mule JWT Validat...
MuleSoft Integration with AWS Cognito Client Credentials and Mule JWT Validat...MuleSoft Integration with AWS Cognito Client Credentials and Mule JWT Validat...
MuleSoft Integration with AWS Cognito Client Credentials and Mule JWT Validat...
 
MuleSoft Clustring, Okta, CI/CD Integration with Jenkins
MuleSoft Clustring, Okta, CI/CD Integration with JenkinsMuleSoft Clustring, Okta, CI/CD Integration with Jenkins
MuleSoft Clustring, Okta, CI/CD Integration with Jenkins
 
Power of Transformation with DataWeave 2.X Engine
Power of Transformation with DataWeave 2.X EnginePower of Transformation with DataWeave 2.X Engine
Power of Transformation with DataWeave 2.X Engine
 
Mumbai MuleSoft Meetup:Batch Processing, Anypoint Messaging Queue and Custom ...
Mumbai MuleSoft Meetup:Batch Processing, Anypoint Messaging Queue and Custom ...Mumbai MuleSoft Meetup:Batch Processing, Anypoint Messaging Queue and Custom ...
Mumbai MuleSoft Meetup:Batch Processing, Anypoint Messaging Queue and Custom ...
 
Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...
Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...
Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...
 
MuleSoft Meetup Mumbai Mule 4 Presentation Slide
MuleSoft Meetup Mumbai Mule 4 Presentation SlideMuleSoft Meetup Mumbai Mule 4 Presentation Slide
MuleSoft Meetup Mumbai Mule 4 Presentation Slide
 

Recently uploaded

Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 

Recently uploaded (20)

Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 

MuleSoft Meetup slides_kualalumpur_19thSept_Undisturbed REST: Achieving Undisturbed REST

  • 1. [19th September 2020]: [Undisturbed REST: Achieving Undisturbed REST (RAML)] [Kuala Lumpur - Malaysia]
  • 2. All contents © MuleSoft Inc. 2 • 1.Please keep yourself muted unless you have any question. • 2.We encourage keeping your video for making our meetup interactive. • 3.You'll can also write down your questions in chat section. • 4.Once you join write down your registered name in chat section so we will have an attendance. • 5.As this is our first online Meetup, we appreciate your valuable feedback. Thanks. Guidelines for Kuala Lumpur MuleSoft Meetup #1 [Virtual]
  • 3. All contents © MuleSoft Inc. Agenda 3  Introductions  Important Announcements and Latest Releases/News  MuleSoft CONNECT:Now 2020  MuleSoft Anypoint Platform Insiders  Technical Session - Undisturbed REST: Achieving Undisturbed REST (RAML)  Q/A and Networking time
  • 4. All contents © MuleSoft Inc. Introductions 4 • About the organizers: – Nitushree Jena – Manish Yadav • About the sponsors: MuleSoft , Billennium A SHOW OF HANDS: Who is new to this MeetUp?
  • 5. All contents © MuleSoft Inc. Organizers 5
  • 6. All contents © MuleSoft Inc. Speaker 6
  • 8. All contents © MuleSoft Inc. 8 • Registration Link: https://connect.mulesoft.com/ • Blog Link MuleSoft CONNECT:Now 2020
  • 9. All contents © MuleSoft Inc. 9 • MuleSoft Anypoint Platform Insiders – As an Insider, you will be able to engage with our product leaders and designers to give ongoing, real-time, insightful feedback. – You will be able to see our latest designs, interact with features before release, and give your impactful opinions through user studies, surveys, and pre-release interviews; across the entire product development cycle, from idea generation to design to validation. – You will have access to the online Hub where you can see all the studies that you have been invited to with participation completely optional and to you and your availability. – Join us and help drive the future of Anypoint Platform! Send in your nominations. • Anypoint Studio 7.6.0 Release Latest Releases/News
  • 10. All contents © MuleSoft Inc. Take a stand ! 10 • Nominate yourself for the next meetup speaker and suggest a topic as well.
  • 11. All contents © MuleSoft Inc. What’s next 11 • Share: – Tweet your pictures with the hashtag #MuleMeetup #MuleSoftMeetup – Invite your network to join: https://meetups.mulesoft.com/kuala-lumpur/ – Feedback: – Contact your organizers Manish Yadav and Nitushree Jena to suggest topics – Tweet your organizers at @NeetuJena, @Manish_Kyadav. – Contact MuleSoft at meetup@mulesoft.com for ways to improve the program – Your Feedback is Food for us • Our next meetup: – Date: TBD – Location: Kuala Lumpur, Malaysia (Virtual) – Topic: TBD
  • 13. All contents © MuleSoft Inc. Mike Stowe • API Fanatic • Open Source Contributor • Author, Speaker, Consultant • 15+ Years Hacking Professional Code • DevRel and Pun Teller at RingCentral https://mulesoft.com/restbook
  • 14. All contents © MuleSoft Inc.
  • 15. All contents © MuleSoft Inc.
  • 16. All contents © MuleSoft Inc. IMPORTANT HANDLES @mikegstowe @ringcentraldevs This is me. This keeps me from getting fired…
  • 18. All contents © MuleSoft Inc. AN API IS a way for two applications to programmatically connect to each other through a mutual interface.
  • 19. All contents © MuleSoft Inc. WHY BUILD A API?
  • 20. All contents © MuleSoft Inc. WHY BUILD A API?
  • 21. All contents © MuleSoft Inc. WHY BUILD A API?
  • 22. All contents © MuleSoft Inc. WEB APIs IN THE REAL WORLD Today there are over 23,000 public APIs listed on ProgrammableWeb, however the majority of web- based APIs are internal APIs – being used for system to system integrations, partner integrations, and IoT devices such as smart phones, watches, security systems, and other devices. Fun note: in 2014 there were ~11,000 public APIs
  • 23. All contents © MuleSoft Inc.
  • 24. All contents © MuleSoft Inc. Versioning is expensive… for everyone.
  • 26. All contents © MuleSoft Inc. I can definitely say that one of the best investments we ever made as a company was in our API. It’s probably the best marketing we’ve ever done.” “ -Ben Chestnut, Owner of MailChimp
  • 27. All contents © MuleSoft Inc. I can definitely say our API was a complete waste of money...” “ -Someone else with a very different experience
  • 28. All contents © MuleSoft Inc. • Who is your API for? • What type of API are you building? • How are you going to maintain your API? • How are you going to document your API? • How are you going to let users interact with your API? • How are you going to manage authentication, provisioning, throttling, and developer security? • How are you going to protect your servers against attacks, developer misuse, etc? • How are you going to manage support? Have a Plan:
  • 29. All contents © MuleSoft Inc. • Who are your end users? - Current customers - Business partners - Third-party services • What actions do they need access to? - This means sitting down and talking to them! • How can you involve them in the design process? - Your users should be involved from Day One. Who Will Be Using Your API?
  • 30. All contents © MuleSoft Inc. • List out WHY you are making the API – Saying that you’re exposing your data to users is not good enough- explain HOW they will use it • Explain how your API will interact with existing services • List out the actions the API needs to be able to handle – Users: add, edit, reset password, delete, etc… – Messages: draft, send, retrieve, archive, etc… • Do only what is NECESSARY • DON’T get fancy. What is the Purpose of Your API?
  • 31. All contents © MuleSoft Inc. List Out What Your Users Need to be able to Do:
  • 32. All contents © MuleSoft Inc. • Are you building a REST, partial REST, SOAP, RPC based, or GraphQL API? • Why are you building your API in that format? • What does that mean for development? • What does that mean for usability? • What does that mean for longevity? What Type of API Are You Building?
  • 33. All contents © MuleSoft Inc.
  • 34. All contents © MuleSoft Inc. • Client-Server • Stateless • Cacheable • Interface/ Uniform Contract • Layered System • Code on Demand (optional) Do You Understand the REST Constraints?
  • 35. All contents © MuleSoft Inc. Most APIs are NOT RESTful.
  • 37. All contents © MuleSoft Inc. Versioning is a necessary evil.
  • 38. All contents © MuleSoft Inc. • Backwards incompatibilities • Multiple Services to Maintain • Multiple Systems to Support • Creates confusion among developers • Developer adoption is nearly impossible Problems with Versioning
  • 39. All contents © MuleSoft Inc. • Backwards incompatible platform changes • Your API is no longer extendable • Your spec is out dated (ie SOAP) You Need to Version When:
  • 40. All contents © MuleSoft Inc. • Added new endpoints • Added additional data in response • Changed technologies (java to ruby) • Changed your application’s services (code) But You Shouldn’t Version Just Because You:
  • 41. All contents © MuleSoft Inc. Your API should be designed to avoid having to version it, not as a “first draft” to be perfected later.
  • 42. All contents © MuleSoft Inc. “...people are fairly good at short-term design, and usually awful at long-term design.” “ -Dr. Roy Fielding
  • 43. All contents © MuleSoft Inc. And a poorly designed API will cost you far more in the long run, adding months to fix what could have been prevented in weeks. There are no shortcuts or quick fixes, you can either build your API the right way to begin with, or pay substantially for it in the long-run.
  • 44. All contents © MuleSoft Inc. Use Spec Driven Development • Define your API before Coding • Use Design Patterns/ Code Reuse • Mock and get User Feedback • Make Necessary Changes • Start Coding – to the Spec • DO NOT DEVIATE!
  • 45. All contents © MuleSoft Inc. • Standardized – new developers can hit the ground running • Consistent – uses design patterns and encourages code reuse • Tested – used in production at companies large and small • Concrete – becomes the foundation of your API • Immutable – cannot be changed on the fly or by deleting code • Persistent – allows evolution without breaking the API contract Why Spec Driven Development?
  • 46. All contents © MuleSoft Inc. Spec Driven Development means a two stage, agile design and development process. You should develop your spec iteratively, incorporating agile user testing. Then your development should be agile, utilizing TDD – however - your API should be static, driven by the spec with no deviation.
  • 47. All contents © MuleSoft Inc. Hybrid Approach Design Development Continuous, fluid, changeable Static… No turns
  • 48. All contents © MuleSoft Inc. The Agile Design Cycle This creates a continuous cycle of agile user testing of our design, ensuring we meet costumers’ needs and have a well thought-out, carefully designed and tested API – before writing a single line of code
  • 49. All contents © MuleSoft Inc. • RAML • IO Docs • Swagger/ OAI • API Blueprint Choosing a Spec:
  • 50. All contents © MuleSoft Inc. API Blueprint RAML Swagger / OAI https://ringcentr.al/api-specs
  • 51. All contents © MuleSoft Inc. • You can define your API in just a few lines of code • You can see what it would look like as you go • You can quickly prototype it for devs to try • You can quickly make tweaks/ changes • You can easily document your API • You can let developers try your API online • You can let developers interact with your and other APIs • Generate SDKs/ client libraries for your API (REST United, APIMatic.io) Using RAML You Can:
  • 52. All contents © MuleSoft Inc. • You can use data models and design patterns • You can reuse code (libraries, overlays, traits, resourceTypes) More Importantly… resourceTypes: - collection: description: Collection of available <<resourcePathName>> in Jukebox. get: description: Get a list of <<resourcePathName>>. responses: 200: body: application/json: example: | <<exampleCollection>>
  • 53. All contents © MuleSoft Inc. What Does RAML Look Like? #%RAML 1.0 title: World Music API baseUri: http://example.api.com/{version} version: v1 /playlists: get: responses: 200: body: application/json: example: | { “playlistID” : 1, “playlistName” : “My Awesome Playlist”, “genre” : “top40”, “songs” : 40 }
  • 54. All contents © MuleSoft Inc. The RAML API Designer
  • 55. All contents © MuleSoft Inc. The RAML API Designer
  • 56. All contents © MuleSoft Inc. Remember, your spec is not a one-and- done, rather it is the blueprint for your API. Anytime you do something to your API you should be modifying the spec and going through user testing before writing code. You should never have code that does something not defined by your spec.
  • 58. All contents © MuleSoft Inc. The RAML API Designer
  • 59. All contents © MuleSoft Inc.
  • 60. All contents © MuleSoft Inc.
  • 61. All contents © MuleSoft Inc. Developers do not want to code against an API that is just going to be thrown away or might change the next day.” “ -Gareth Jones, Principle API Architect, Microsoft OneNote
  • 62. All contents © MuleSoft Inc. getpostman.com
  • 63. All contents © MuleSoft Inc. apinotebook.com
  • 64. All contents © MuleSoft Inc. Remember, hands on user feedback is CRUCIAL to the success of your API, ensuring developers can not only use your API, but that it meets their needs.
  • 65. All contents © MuleSoft Inc. Once your spec is finalized, you can now use the prototype to enable parallel development, significantly reducing time to market.
  • 67. All contents © MuleSoft Inc. Use Nouns.
  • 68. All contents © MuleSoft Inc. Plural == Collection.
  • 69. All contents © MuleSoft Inc. Use: /users Not: /createUser /getUser /deleteUser Use: /addresses Not: /address /user/address /getAddress
  • 71. All contents © MuleSoft Inc. Remember CRUD.
  • 72. All contents © MuleSoft Inc. Create (POST) Read (GET) Update (PUT/ PATCH) Delete (DELETE)
  • 74. All contents © MuleSoft Inc. Use Accept/ Content-Type Headers.
  • 75. All contents © MuleSoft Inc. Using headers gives you flexibility to support multiple types of formats from the same resource without worrying about breaking backwards compatibility. Most common: • application/json - wider language support • application/xml Use Accept/ Content-Type Headers
  • 76. All contents © MuleSoft Inc. Use Response Codes.
  • 77. All contents © MuleSoft Inc. 200 – OK 201 – Created 304 – Not modified 400 – Bad Request 401 – Not Authorized 403 – Forbidden 404 – Page/ Resource Not Found 405 – Method Not Allowed 415 – Unsupported Media Type 500 – Internal Server Error
  • 78. All contents © MuleSoft Inc. 418 – I’m a Teapot… 420 – Enhance Your Calm 501 – Or if you’re feeling super creative…
  • 79. All contents © MuleSoft Inc. Use Descriptive Error Messages.
  • 80. All contents © MuleSoft Inc. { 'error' { 'code' : 'e3526', 'message' : 'Missing UserID', 'description' : 'A UserID is required to edit a user.', 'link' : 'http://docs.mysite.com/errors/e3526/' } } The more information you provide, the easier it will be for developers to integrate your API without contacting Support.
  • 81. All contents © MuleSoft Inc. • vnd.error • Google Errors • JSON API Common Descriptive Error Formats
  • 82. All contents © MuleSoft Inc. Don’t forget Cache.
  • 84. All contents © MuleSoft Inc. Wait!? What is Hypermedia. HATEOAS
  • 85. Hypercard, originally released in 1987 (Hypercard clone HyperStudio shown)
  • 86. Oregon Trail, originally released in 1971
  • 87.
  • 88.
  • 89. The internet, with the first .COM (symbolics.com) being registered in 1985
  • 90. All contents © MuleSoft Inc. CPHL { "data" : { "user" : { "fname" : "Mike", "lname" : "Stowe", "_links" : { "edit" : { "href" : "/api/user/id/1", "methods" : ["put", "patch"] }, "messages": { "href" : "/api/message/id/1/lname/last”, "methods" : ["post"] } } } } }
  • 91. All contents © MuleSoft Inc.
  • 92. All contents © MuleSoft Inc. Hypermedia is the catalyst that removes business logic from the client, allowing for the free evolution of the API (or server).
  • 93. All contents © MuleSoft Inc. { "firstName" : "Mike", "lastName" : "Stowe", "_links" : { "message" : { "href" : "/api/messages/?user=1", "methods" : ["put", "patch"] } } }
  • 94. All contents © MuleSoft Inc. { "firstName" : "Mike", "lastName" : "Stowe", "_links" : { "message" : { "href" : "/api/messages/?user=1&tkn=123", "methods" : ["put", "patch"] } } }
  • 95. All contents © MuleSoft Inc. • HAL • JSON-LD • JSON API • Collection+JSON • Siren • CPHL* Most Popular Hypertext Link Specs
  • 96. All contents © MuleSoft Inc. HAL/CPHL"_links" : { "edit" : { "href" : "/api/user/id/1", "methods" : ["put", "patch"] }, "messages": { "href" : "/api/message/id/1/lname/last”, "methods" : ["post"] } }
  • 98. All contents © MuleSoft Inc. • A clear explanation of what the method/resource does • Call outs that share important information with developers, including warnings and errors • A sample call with the correlating media type body • A list of parameters used on this resource/method, as well as their types, special formatting, rules and whether or not they are required • A sample response, including media type body • Code examples for multiple languages including all necessary code (e.g. Curl with PHP, as well as examples for Java, .Net, Ruby, etc.) Creating GREAT Documentation
  • 99. All contents © MuleSoft Inc. • SDK examples (if SDKs are provided) showing how to access the resource/method utilizing the SDK for their language • Interactive experiences to try/test API calls (API Console, API Notebook) • Frequently asked questions/scenarios with code examples • Links to additional resources (other examples, blogs, etc.) • A comments section where users can share/discuss code • Other support resources (forums, contact forms, etc.) Creating GREAT Documentation
  • 100. All contents © MuleSoft Inc. Be sure to keep your documentation up to date and simple enough for developers to quickly find and implement solutions to even the most complex problems. Poor documentation has been the death of many an API.
  • 101. 5 Minute – Always up to date documentation (raml.org/projects)
  • 103. All contents © MuleSoft Inc. It only takes ONE little thing to significantly reduce your API’s life span. Every action you make on your API must be carefully thought out and tested BEFORE being pushed to production.
  • 104. All contents © MuleSoft Inc. Remember...
  • 105. All contents © MuleSoft Inc. Building an API is easy.
  • 106. All contents © MuleSoft Inc. Designing an API is hard.
  • 109. Networking time Introduce yourself to your neighbors!
  • 110. See you next time Please send topic suggestions to the organizer