SlideShare a Scribd company logo
31/03/2020: API Design Practices to Accelerate
Development
Manchester MuleSoft Meetup Group
All contents © MuleSoft Inc.
Introductions
2
• About Francis Edwards:
– I’ve worked for Saint-Gobain for three years, initially providing integrations between
different corporate systems as well as to external third parties. I’ve replaced numerous
file transfer integrations, automated scripts & exposed APIs to existing or new services for
the Digital Transformation strategy.
– I completed the RAML 0.8 exam without revision, but took a few ‘non’ open book
attempts at the exam following the 2 day API Design course to work out what I needed to
learn.
– I’ve used the Design Centre and Anypoint Exchange to create and publish RAML
specifications and built subsequent implementations using the maven-dependency-plugin
• About Saint-Gobain Building Distribution:
– Saint-Gobain Building Distribution is the company that bring together a number of
suppliers & brands that supply material & tools into the construction industry
– The company is part of the wider Saint-Gobain Group & uses IT infrastructure that is both
within UK datacentres & IT services headquartered in France.
All contents © MuleSoft Inc.
RAML Integrating Design with Development
3
• Useful Resources
– There are a number of books that can
help learn API design and RAML
particularly – Manning: The Design of
Web APIs & Undisturbed REST
– API Workbench is a package that can
be installed into ATOM editor
– Design Centre at Anypoint Platform
– The RAML Specification – GitHub
project
– The resources at RAML Org
– The API Design Course from Mulesoft
Training
API Design Practices to Accelerate Development
RAML 1.0
All contents © MuleSoft Inc.
RAML Integrating Design with Development
5
• Requirement 1 – Anypoint Studio
– The first parts of a RAML definition
can be used to provide configuration
details to developer – this includes
both the http-requester and http-
listener
– Prevents typing errors and assigns
correct testing details
– item definitions aid with using ‘as
:String’ or
Integer.parseInt(message.inboundPr
operties.ID) functions when declaring
values
All contents © MuleSoft Inc.
RAML Integrating Design with Development
6
• Requirement 2 – Anypoint Studio
– Flows can be generated with payload
stubs using the imported RAML
specification
– Need to use types with embedded
examples to populate payload stubs
All contents © MuleSoft Inc.
RAML Integrating Design with Development
7
• Requirement 3 – Design Centre Console
– Requires to root element to be valid and
ideally have all code in the specification to
render the console
– Requires that securitySchemes defined and a
securedBy element populated by at least null
to provide console functionality
– The documentation element allows a readme
file to be included in the console that can
give instructions for expected behavior and
information in the described resource
All contents © MuleSoft Inc.
RAML Integrating Design with Development
8
• Requirement 4 – Anypoint Exchange
– Requires the title element to create the
maven artefact name
– Requires the version to populate the
main version grouping of the published
Anypoint Exchange artefact
– The documentation element is
incorporated within the Anypoint
Exchange artefact and can be cut and
pasted into the artefact page
– baseUri and resource methods auto-
populate in an artefact description pane,
together with instance information
All contents © MuleSoft Inc.
RAML Integrating Design with Development
9
• Requirement 5 – API Manager
– The title element is taken from the
title in Anypoint Exchange which
is populated from the original
element
– version required to differentiate
API implementation and produce
unique autodiscovery string
– baseUri required to populate the
location of the API
implementation
All contents © MuleSoft Inc.
RAML Integrating Design with Development
10
• Requirement 6 – Service Contract
– Examples data can be included
initially to aid with setting output
payloads, but also provide errors
– Object definitions can be used to
provide meta-data for
transformations
– RAML minimally describes the API
rather than like JSON schemas that
fully describe objects
– Objects are used as input into query-
parms expressions. It is easier to
carry out null checking on JSON
objects than to remember to so this
for each query-param used in a HTTP
requester
All contents © MuleSoft Inc.
RAML Integrating Design with Development
11
Demo Time
• Anypoint Design Centre
– This RAML project describes the
access of objects from a resource
and demonstrates the use of
RAML
– My main recommendation being
that rather than specifying
queryParams, that objects
describe instead what can be
searched via the queryString
element
See you next time
Please send topic suggestions to the organizer

More Related Content

What's hot

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
Julian Douch
 
NYC MuleSoft Meetup 2019 Q1- APIs in action
NYC MuleSoft Meetup 2019 Q1- APIs in actionNYC MuleSoft Meetup 2019 Q1- APIs in action
NYC MuleSoft Meetup 2019 Q1- APIs in action
Gean Martinez
 
Meetup bangalore-sept5th 2020 (1)
Meetup bangalore-sept5th 2020 (1)Meetup bangalore-sept5th 2020 (1)
Meetup bangalore-sept5th 2020 (1)
D.Rajesh Kumar
 
NYC MuleSoft Meetup 2019 Q2- MuleSoft for Mobile Applications
NYC MuleSoft Meetup 2019 Q2- MuleSoft for Mobile ApplicationsNYC MuleSoft Meetup 2019 Q2- MuleSoft for Mobile Applications
NYC MuleSoft Meetup 2019 Q2- MuleSoft for Mobile Applications
Gean Martinez
 
MuleSoft Surat Virtual Meetup#24 - MuleSoft and Salesforce Integration and De...
MuleSoft Surat Virtual Meetup#24 - MuleSoft and Salesforce Integration and De...MuleSoft Surat Virtual Meetup#24 - MuleSoft and Salesforce Integration and De...
MuleSoft Surat Virtual Meetup#24 - MuleSoft and Salesforce Integration and De...
Jitendra Bafna
 
MuleSoft Meetup - Singapore - No.3 Oct19
MuleSoft Meetup - Singapore - No.3 Oct19MuleSoft Meetup - Singapore - No.3 Oct19
MuleSoft Meetup - Singapore - No.3 Oct19
Julian Douch
 
Mumbai MuleSoft Meetup 12
Mumbai MuleSoft Meetup 12Mumbai MuleSoft Meetup 12
Mumbai MuleSoft Meetup 12
Akshata Sawant
 
MuleSoft Kochi Meetup #3– Integration with Web Sockets
 MuleSoft Kochi Meetup #3– Integration with Web Sockets MuleSoft Kochi Meetup #3– Integration with Web Sockets
MuleSoft Kochi Meetup #3– Integration with Web Sockets
sumitahuja94
 
MuleSoft Meetup Charlotte 2 - 2019
MuleSoft Meetup Charlotte 2 - 2019MuleSoft Meetup Charlotte 2 - 2019
MuleSoft Meetup Charlotte 2 - 2019
Subhash Patel
 
MuleSoft meetup_sg_no2_may19
MuleSoft meetup_sg_no2_may19MuleSoft meetup_sg_no2_may19
MuleSoft meetup_sg_no2_may19
Julian Douch
 
Vancouver mulesoft meetup_23-july
Vancouver mulesoft meetup_23-julyVancouver mulesoft meetup_23-july
Vancouver mulesoft meetup_23-july
Vikalp Bhalia
 
WHISHWORKS-MuleSoft Hyderabad Meetup -Oct 2018
WHISHWORKS-MuleSoft Hyderabad Meetup -Oct 2018WHISHWORKS-MuleSoft Hyderabad Meetup -Oct 2018
WHISHWORKS-MuleSoft Hyderabad Meetup -Oct 2018
Coforge (Erstwhile WHISHWORKS)
 
MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63
MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63
MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63
Angel Alberici
 
Melbourne Virtual MuleSoft Meetup October 2021
Melbourne Virtual MuleSoft Meetup October 2021Melbourne Virtual MuleSoft Meetup October 2021
Melbourne Virtual MuleSoft Meetup October 2021
Daniel Soffner
 
Containerising the Mule Runtime with Kubernetes & From Zero to Batch : MuleS...
Containerising the Mule Runtime with Kubernetes & From Zero to Batch  : MuleS...Containerising the Mule Runtime with Kubernetes & From Zero to Batch  : MuleS...
Containerising the Mule Runtime with Kubernetes & From Zero to Batch : MuleS...
Angel Alberici
 
Richmond MuleSoft Meetup 2021-08-18
Richmond MuleSoft Meetup 2021-08-18Richmond MuleSoft Meetup 2021-08-18
Richmond MuleSoft Meetup 2021-08-18
Tom Obermeyer
 
Meet up slides_mumbai_05022020_final
Meet up slides_mumbai_05022020_finalMeet up slides_mumbai_05022020_final
Meet up slides_mumbai_05022020_final
Akshata Sawant
 
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 Meetup Adelaide 7th April 2021
MuleSoft Meetup Adelaide 7th April 2021MuleSoft Meetup Adelaide 7th April 2021
MuleSoft Meetup Adelaide 7th April 2021
Nicholas Bowman
 
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
Subhash Patel
 

What's hot (20)

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
 
NYC MuleSoft Meetup 2019 Q1- APIs in action
NYC MuleSoft Meetup 2019 Q1- APIs in actionNYC MuleSoft Meetup 2019 Q1- APIs in action
NYC MuleSoft Meetup 2019 Q1- APIs in action
 
Meetup bangalore-sept5th 2020 (1)
Meetup bangalore-sept5th 2020 (1)Meetup bangalore-sept5th 2020 (1)
Meetup bangalore-sept5th 2020 (1)
 
NYC MuleSoft Meetup 2019 Q2- MuleSoft for Mobile Applications
NYC MuleSoft Meetup 2019 Q2- MuleSoft for Mobile ApplicationsNYC MuleSoft Meetup 2019 Q2- MuleSoft for Mobile Applications
NYC MuleSoft Meetup 2019 Q2- MuleSoft for Mobile Applications
 
MuleSoft Surat Virtual Meetup#24 - MuleSoft and Salesforce Integration and De...
MuleSoft Surat Virtual Meetup#24 - MuleSoft and Salesforce Integration and De...MuleSoft Surat Virtual Meetup#24 - MuleSoft and Salesforce Integration and De...
MuleSoft Surat Virtual Meetup#24 - MuleSoft and Salesforce Integration and De...
 
MuleSoft Meetup - Singapore - No.3 Oct19
MuleSoft Meetup - Singapore - No.3 Oct19MuleSoft Meetup - Singapore - No.3 Oct19
MuleSoft Meetup - Singapore - No.3 Oct19
 
Mumbai MuleSoft Meetup 12
Mumbai MuleSoft Meetup 12Mumbai MuleSoft Meetup 12
Mumbai MuleSoft Meetup 12
 
MuleSoft Kochi Meetup #3– Integration with Web Sockets
 MuleSoft Kochi Meetup #3– Integration with Web Sockets MuleSoft Kochi Meetup #3– Integration with Web Sockets
MuleSoft Kochi Meetup #3– Integration with Web Sockets
 
MuleSoft Meetup Charlotte 2 - 2019
MuleSoft Meetup Charlotte 2 - 2019MuleSoft Meetup Charlotte 2 - 2019
MuleSoft Meetup Charlotte 2 - 2019
 
MuleSoft meetup_sg_no2_may19
MuleSoft meetup_sg_no2_may19MuleSoft meetup_sg_no2_may19
MuleSoft meetup_sg_no2_may19
 
Vancouver mulesoft meetup_23-july
Vancouver mulesoft meetup_23-julyVancouver mulesoft meetup_23-july
Vancouver mulesoft meetup_23-july
 
WHISHWORKS-MuleSoft Hyderabad Meetup -Oct 2018
WHISHWORKS-MuleSoft Hyderabad Meetup -Oct 2018WHISHWORKS-MuleSoft Hyderabad Meetup -Oct 2018
WHISHWORKS-MuleSoft Hyderabad Meetup -Oct 2018
 
MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63
MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63
MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63
 
Melbourne Virtual MuleSoft Meetup October 2021
Melbourne Virtual MuleSoft Meetup October 2021Melbourne Virtual MuleSoft Meetup October 2021
Melbourne Virtual MuleSoft Meetup October 2021
 
Containerising the Mule Runtime with Kubernetes & From Zero to Batch : MuleS...
Containerising the Mule Runtime with Kubernetes & From Zero to Batch  : MuleS...Containerising the Mule Runtime with Kubernetes & From Zero to Batch  : MuleS...
Containerising the Mule Runtime with Kubernetes & From Zero to Batch : MuleS...
 
Richmond MuleSoft Meetup 2021-08-18
Richmond MuleSoft Meetup 2021-08-18Richmond MuleSoft Meetup 2021-08-18
Richmond MuleSoft Meetup 2021-08-18
 
Meet up slides_mumbai_05022020_final
Meet up slides_mumbai_05022020_finalMeet up slides_mumbai_05022020_final
Meet up slides_mumbai_05022020_final
 
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 Meetup Adelaide 7th April 2021
MuleSoft Meetup Adelaide 7th April 2021MuleSoft Meetup Adelaide 7th April 2021
MuleSoft Meetup Adelaide 7th April 2021
 
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
 

Similar to Manchester Meetup #3

West Yorkshire Mulesoft Meetup #6
West Yorkshire Mulesoft Meetup #6West Yorkshire Mulesoft Meetup #6
West Yorkshire Mulesoft Meetup #6
Francis Edwards
 
MuleSoft Manchester Meetup #3 slides 31st March 2020
MuleSoft Manchester Meetup #3 slides 31st March 2020MuleSoft Manchester Meetup #3 slides 31st March 2020
MuleSoft Manchester Meetup #3 slides 31st March 2020
Ieva Navickaite
 
West Yorkshire Meetup #3
West Yorkshire Meetup #3West Yorkshire Meetup #3
West Yorkshire Meetup #3
Francis Edwards
 
Mulesoft meetup 9thmay Thiruvananthapuram
Mulesoft meetup 9thmay ThiruvananthapuramMulesoft meetup 9thmay Thiruvananthapuram
Mulesoft meetup 9thmay Thiruvananthapuram
Anurag Dwivedi
 
West Yorkshire Mulesoft Meetup #5
West Yorkshire Mulesoft Meetup #5West Yorkshire Mulesoft Meetup #5
West Yorkshire Mulesoft Meetup #5
Francis Edwards
 
Chicago Mulesoft meetup-08 apr2021
Chicago Mulesoft meetup-08 apr2021Chicago Mulesoft meetup-08 apr2021
Chicago Mulesoft meetup-08 apr2021
prasenjit banerjee
 
Mulesoft Connections to different companies, and different services
Mulesoft Connections to different companies, and different servicesMulesoft Connections to different companies, and different services
Mulesoft Connections to different companies, and different services
Byreddy Sravan Kumar Reddy
 
File Upload with RESP API
File Upload with RESP APIFile Upload with RESP API
File Upload with RESP API
Thiago Santana
 
Designing and building Mule applications
Designing and building Mule applicationsDesigning and building Mule applications
Designing and building Mule applications
MuleSoft
 
IRJET- Polymer Javascript
IRJET- Polymer JavascriptIRJET- Polymer Javascript
IRJET- Polymer Javascript
IRJET Journal
 
Integrate any Angular Project into WebSphere Portal
Integrate any Angular Project into WebSphere PortalIntegrate any Angular Project into WebSphere Portal
Integrate any Angular Project into WebSphere Portal
Himanshu Mendiratta
 
Solving the Automation Puzzle - how to select the right automation framework ...
Solving the Automation Puzzle - how to select the right automation framework ...Solving the Automation Puzzle - how to select the right automation framework ...
Solving the Automation Puzzle - how to select the right automation framework ...
Ori Bendet
 
Extend soa with api management Sangam18
Extend soa with api management Sangam18Extend soa with api management Sangam18
Extend soa with api management Sangam18
Vinay Kumar
 
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
Bhargav Ranjit
 
Anypoint platform architecture and components
Anypoint platform architecture and componentsAnypoint platform architecture and components
Anypoint platform architecture and components
D.Rajesh Kumar
 
Mule ESB Intro
Mule ESB IntroMule ESB Intro
Mule ESB Intro
Noga Manela
 
Advanced angular
Advanced angularAdvanced angular
Advanced angular
Sumit Kumar Rakshit
 
MuleSoft Madrid Meetup #3 slides 2nd July 2020
MuleSoft Madrid Meetup #3 slides 2nd July 2020MuleSoft Madrid Meetup #3 slides 2nd July 2020
MuleSoft Madrid Meetup #3 slides 2nd July 2020
Ieva Navickaite
 
Mule meetup 25thjan
Mule meetup 25thjanMule meetup 25thjan
Mule meetup 25thjan
pruthviraj krishnam
 
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
Andrew Coleman
 

Similar to Manchester Meetup #3 (20)

West Yorkshire Mulesoft Meetup #6
West Yorkshire Mulesoft Meetup #6West Yorkshire Mulesoft Meetup #6
West Yorkshire Mulesoft Meetup #6
 
MuleSoft Manchester Meetup #3 slides 31st March 2020
MuleSoft Manchester Meetup #3 slides 31st March 2020MuleSoft Manchester Meetup #3 slides 31st March 2020
MuleSoft Manchester Meetup #3 slides 31st March 2020
 
West Yorkshire Meetup #3
West Yorkshire Meetup #3West Yorkshire Meetup #3
West Yorkshire Meetup #3
 
Mulesoft meetup 9thmay Thiruvananthapuram
Mulesoft meetup 9thmay ThiruvananthapuramMulesoft meetup 9thmay Thiruvananthapuram
Mulesoft meetup 9thmay Thiruvananthapuram
 
West Yorkshire Mulesoft Meetup #5
West Yorkshire Mulesoft Meetup #5West Yorkshire Mulesoft Meetup #5
West Yorkshire Mulesoft Meetup #5
 
Chicago Mulesoft meetup-08 apr2021
Chicago Mulesoft meetup-08 apr2021Chicago Mulesoft meetup-08 apr2021
Chicago Mulesoft meetup-08 apr2021
 
Mulesoft Connections to different companies, and different services
Mulesoft Connections to different companies, and different servicesMulesoft Connections to different companies, and different services
Mulesoft Connections to different companies, and different services
 
File Upload with RESP API
File Upload with RESP APIFile Upload with RESP API
File Upload with RESP API
 
Designing and building Mule applications
Designing and building Mule applicationsDesigning and building Mule applications
Designing and building Mule applications
 
IRJET- Polymer Javascript
IRJET- Polymer JavascriptIRJET- Polymer Javascript
IRJET- Polymer Javascript
 
Integrate any Angular Project into WebSphere Portal
Integrate any Angular Project into WebSphere PortalIntegrate any Angular Project into WebSphere Portal
Integrate any Angular Project into WebSphere Portal
 
Solving the Automation Puzzle - how to select the right automation framework ...
Solving the Automation Puzzle - how to select the right automation framework ...Solving the Automation Puzzle - how to select the right automation framework ...
Solving the Automation Puzzle - how to select the right automation framework ...
 
Extend soa with api management Sangam18
Extend soa with api management Sangam18Extend soa with api management Sangam18
Extend soa with api management Sangam18
 
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
 
Anypoint platform architecture and components
Anypoint platform architecture and componentsAnypoint platform architecture and components
Anypoint platform architecture and components
 
Mule ESB Intro
Mule ESB IntroMule ESB Intro
Mule ESB Intro
 
Advanced angular
Advanced angularAdvanced angular
Advanced angular
 
MuleSoft Madrid Meetup #3 slides 2nd July 2020
MuleSoft Madrid Meetup #3 slides 2nd July 2020MuleSoft Madrid Meetup #3 slides 2nd July 2020
MuleSoft Madrid Meetup #3 slides 2nd July 2020
 
Mule meetup 25thjan
Mule meetup 25thjanMule meetup 25thjan
Mule meetup 25thjan
 
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
 

Recently uploaded

Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 

Recently uploaded (20)

Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 

Manchester Meetup #3

  • 1. 31/03/2020: API Design Practices to Accelerate Development Manchester MuleSoft Meetup Group
  • 2. All contents © MuleSoft Inc. Introductions 2 • About Francis Edwards: – I’ve worked for Saint-Gobain for three years, initially providing integrations between different corporate systems as well as to external third parties. I’ve replaced numerous file transfer integrations, automated scripts & exposed APIs to existing or new services for the Digital Transformation strategy. – I completed the RAML 0.8 exam without revision, but took a few ‘non’ open book attempts at the exam following the 2 day API Design course to work out what I needed to learn. – I’ve used the Design Centre and Anypoint Exchange to create and publish RAML specifications and built subsequent implementations using the maven-dependency-plugin • About Saint-Gobain Building Distribution: – Saint-Gobain Building Distribution is the company that bring together a number of suppliers & brands that supply material & tools into the construction industry – The company is part of the wider Saint-Gobain Group & uses IT infrastructure that is both within UK datacentres & IT services headquartered in France.
  • 3. All contents © MuleSoft Inc. RAML Integrating Design with Development 3 • Useful Resources – There are a number of books that can help learn API design and RAML particularly – Manning: The Design of Web APIs & Undisturbed REST – API Workbench is a package that can be installed into ATOM editor – Design Centre at Anypoint Platform – The RAML Specification – GitHub project – The resources at RAML Org – The API Design Course from Mulesoft Training
  • 4. API Design Practices to Accelerate Development RAML 1.0
  • 5. All contents © MuleSoft Inc. RAML Integrating Design with Development 5 • Requirement 1 – Anypoint Studio – The first parts of a RAML definition can be used to provide configuration details to developer – this includes both the http-requester and http- listener – Prevents typing errors and assigns correct testing details – item definitions aid with using ‘as :String’ or Integer.parseInt(message.inboundPr operties.ID) functions when declaring values
  • 6. All contents © MuleSoft Inc. RAML Integrating Design with Development 6 • Requirement 2 – Anypoint Studio – Flows can be generated with payload stubs using the imported RAML specification – Need to use types with embedded examples to populate payload stubs
  • 7. All contents © MuleSoft Inc. RAML Integrating Design with Development 7 • Requirement 3 – Design Centre Console – Requires to root element to be valid and ideally have all code in the specification to render the console – Requires that securitySchemes defined and a securedBy element populated by at least null to provide console functionality – The documentation element allows a readme file to be included in the console that can give instructions for expected behavior and information in the described resource
  • 8. All contents © MuleSoft Inc. RAML Integrating Design with Development 8 • Requirement 4 – Anypoint Exchange – Requires the title element to create the maven artefact name – Requires the version to populate the main version grouping of the published Anypoint Exchange artefact – The documentation element is incorporated within the Anypoint Exchange artefact and can be cut and pasted into the artefact page – baseUri and resource methods auto- populate in an artefact description pane, together with instance information
  • 9. All contents © MuleSoft Inc. RAML Integrating Design with Development 9 • Requirement 5 – API Manager – The title element is taken from the title in Anypoint Exchange which is populated from the original element – version required to differentiate API implementation and produce unique autodiscovery string – baseUri required to populate the location of the API implementation
  • 10. All contents © MuleSoft Inc. RAML Integrating Design with Development 10 • Requirement 6 – Service Contract – Examples data can be included initially to aid with setting output payloads, but also provide errors – Object definitions can be used to provide meta-data for transformations – RAML minimally describes the API rather than like JSON schemas that fully describe objects – Objects are used as input into query- parms expressions. It is easier to carry out null checking on JSON objects than to remember to so this for each query-param used in a HTTP requester
  • 11. All contents © MuleSoft Inc. RAML Integrating Design with Development 11 Demo Time • Anypoint Design Centre – This RAML project describes the access of objects from a resource and demonstrates the use of RAML – My main recommendation being that rather than specifying queryParams, that objects describe instead what can be searched via the queryString element
  • 12. See you next time Please send topic suggestions to the organizer

Editor's Notes

  1. There are three types of logging as (its one of the exam questions), the system shows errors messages upon system and application startup and connectors and custom logs populate further during the uptime of the mule server There are a hierarchy of config files, where the first files in the application resources directory is used and if not present the one in the conf directory of the mule_home and if this doesn’t exist a default is referenced; This means logging cannot be disabled and startup logging will always occur even if only set to display in the console (for performance testing)
  2. Link to: