SlideShare a Scribd company logo
1 of 34
Download to read offline
Stève Sfartz, Cisco DevNet
API Architect and Developer Advocates Manager
stsfartz@cisco.com
API World 2018
Emulators as an Emerging Best
Practice for API Providers
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
• API Veteran, Hobbyist Coder, Hands-On Architect
• Building code samples & dev tools, provide feedback, fill gaps
• Manager of a WW team of Developer Evangelists
• Application Development Practices (IoT, Collab, Cloud, DevOps)
• Technical lead for the Cisco « API Style Guide »
• What excites me? Providing great Developer eXperiences
About me: //Cisco/DevNet/SteveSfartz
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
• 500K+ members
• Dev Centers, Labs, Sandboxes
• Tutos
Join DevNet
twitter: @CiscoDevNet
github: @CiscoDevNet
webex: stsfartz@cisco.com
twitter: @SteveSfartz
github: @ObjectIsAdvantag
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Industry trends, Live demos, Lessons learnt
Emulators as an Emerging Best
Practice for API Providers
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
• Containers -> deploy everywhere as a ‘black-box’
• CI/CD pipelines -> don’t break my flow
• Sandboxes -> give me access
• Serverless -> test and debug locally
Industry Trends & Developer Experience
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Enhance the user experience
in Meeetings Rooms
• People Count
• Administration APIs
• Custom UI controls for IoT
Sandboxes at Cisco DevNet
Webex RoomKit
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
In-Room Controls Simulator
https://controls-editor.herokuapp.com/playground.html?virtualroom
End-to-end enriched
User Experience for
Meeting Rooms
• In-Room Control
• Node.js jsxapi
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Prototype with the RoomKit Sandboxes
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Coding for Serverless Platforms
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Coding for Serverless Platforms
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
• Cisco Tropo is « telephony platform as a service »
• In-bound / out-bound Calls and SMS
• REST API endpoint
• Runs 5 languages as Serverless (JS, Python, Java, Groovy, PHP)
• Feedback from one year of evangelism
• hackathons, meetups, tutorials
• great platform
• bad debugging experience
An Emulator for Tropo Serverless Platform
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
IVR script sample: auto-attendant
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Running Tropo Script locally
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
• « Think big, Start small »
• Start from use cases
• « check scripts won’t break »
• « debug locally »
• Prototype / Evaluate / Arbitrate
• A Javascript emulator that mimics the platform
• 2 days to prototype during a DevNet Hack-a-tone
• 5 days to beta running all scripts (17 commits total)
• https://github.com/ObjectIsAdvantag/tropo-emulator-js
Lessons learnt building the Tropo Emulator
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Taking emulators to the next stage
https://github.com/ObjectIsAdvantag/tropo-ready-vscode
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
• Providing an emulator opens a world of possibilities
• Better if opensource
• Visual Studio extension
• Live running by exposing local scripts to Tropo cloud
• 5 days, started with a Hack-a-tone again
• https://github.com/ObjectIsAdvantag/tropo-ready-vscode
Lessons learnt
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
• A twin of your API
• Fully operational
• Generally NOT fully-featured
• Implementing one or several use cases
• Built to help your API consumers tests & debug
What’s an API emulator
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
‘Your App’
now with Cisco
Cloud Collab!
Webex Teams APIs
extend Cisco Cloud Collaboration
GET
POST
DELETE
PUT /Rooms
/Memberships
/Messages
/Teams
/People
/Webhooks
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Webex API Emulator
https://github.com/ObjectIsAdvantag/webex-api-emulator
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Meet the Webex API Emulator
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Webex Teams Bot Architecture
 Register webhook events
• Messages / created
 Memberships / created
 As events happen in spaces,
receive notifications from
Webex
 Security tips
 Select spaces to fire from via
a webhook filter
 Check on user’s email domain
in your code
 Check webhook payload
signature via a shared secret
Webex
cloud platform
1. interacts in spaces
via a Teams client
Webex Teams
User
Your bot code running
on-premises or on in the cloud
2. posts notifications to
registered Webhooks
3. posts back messages
as notifications fly in
Publicly accessible
bot endpoint
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
1. Testing (devops)
2. QA (non-regression, versioning)
3. Experimentating (API design, vNext)
4. Backup (training in restricted environments)
Uses cases for API Emulators
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
• Scope
• Think big, Start small
• Document the use cases you want to cover
• Design your emulator
• Keep it light (in-memory persistance)
• Hyper quick to implement: couple of days
• Build
• Pick a raw HTTP framework to have maximum flexibility to mimic your
payloads
Lessons learnt
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
• Are there alternatives?
- API Emulator vs Mocking
- API Emulator vs Service Virtualization
• How to compare ?
- Start from your use cases!
Thoughs
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
• Who are the customers of your API emulator?
- your developer community
- Internally (Product Management)
Thoughts
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
• Seriously consider adding Emulator(s) to your API Product
• Narrow the use cases your emulator will cover
• Build it in hours/days, not weeks/months
• Opensource it: building block for other use cases & tools
• Observe how your developer community leverages it
• Add a disclaimer (best-effort)
Wrapup
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
• Webex Emulator
• https://github.com/ObjectIsAdvantag/webex-api-emulator
• Tropo Emulator
• https://github.com/ObjectIsAdvantag/tropo-emulator-js
• Tropo-Ready plugin for Visual Studio code
• https://github.com/ObjectIsAdvantag/tropo-ready-vscode
• DevNet Code Exchange
• https://developer.cisco.com/codeexchange/
Resources
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
• 500K+ members
• Dev Centers, Labs, Sandboxes
• Tutos
Join DevNet
twitter: @CiscoDevNet
webex: stsfartz@cisco.com
twitter: @SteveSfartz
github: @ObjectIsAdvantag
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Thank you

More Related Content

What's hot

Devops with Alibaba Cloud
Devops with Alibaba CloudDevops with Alibaba Cloud
Devops with Alibaba Cloudgavaskar s
 
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...The Magic Behind Faster API Development, Testing and Delivery with API Virtua...
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...SmartBear
 
Will you survive the API avalanche?
Will you survive the API avalanche?Will you survive the API avalanche?
Will you survive the API avalanche?Rogue Wave Software
 
I Love APIs 2015 API Lab Design-first API Development Using Node and Swagger
I Love APIs 2015 API Lab Design-first API Development Using Node and SwaggerI Love APIs 2015 API Lab Design-first API Development Using Node and Swagger
I Love APIs 2015 API Lab Design-first API Development Using Node and SwaggerApigee | Google Cloud
 
How to Contribute to Ansible
How to Contribute to AnsibleHow to Contribute to Ansible
How to Contribute to AnsibleCisco DevNet
 
Da DevOps a DevSecOps: Servizi applicativi di sicurezza automatizzati con F5 ...
Da DevOps a DevSecOps: Servizi applicativi di sicurezza automatizzati con F5 ...Da DevOps a DevSecOps: Servizi applicativi di sicurezza automatizzati con F5 ...
Da DevOps a DevSecOps: Servizi applicativi di sicurezza automatizzati con F5 ...Emerasoft, solutions to collaborate
 
A Reference Architecture to Enable Visibility and Traceability across the Ent...
A Reference Architecture to Enable Visibility and Traceability across the Ent...A Reference Architecture to Enable Visibility and Traceability across the Ent...
A Reference Architecture to Enable Visibility and Traceability across the Ent...CollabNet
 
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...Richard Bullington-McGuire
 
Redefining cloud native debugging
Redefining cloud native debugging  Redefining cloud native debugging
Redefining cloud native debugging LibbySchulze
 
Integrate Security and Compliance into your CI/CD Pipeline
Integrate Security and Compliance into your CI/CD PipelineIntegrate Security and Compliance into your CI/CD Pipeline
Integrate Security and Compliance into your CI/CD PipelineDevOps Indonesia
 
Build APIs in Node.js and Swagger 2.0 with Apigee-127
Build APIs in Node.js and Swagger 2.0 with Apigee-127Build APIs in Node.js and Swagger 2.0 with Apigee-127
Build APIs in Node.js and Swagger 2.0 with Apigee-127Apigee | Google Cloud
 
Advanced Mocking for Swagger APIs
Advanced Mocking for Swagger APIsAdvanced Mocking for Swagger APIs
Advanced Mocking for Swagger APIsSmartBear
 
Better Bug Stomping with Zend Studio and Zend Server
Better Bug Stomping with Zend Studio and Zend ServerBetter Bug Stomping with Zend Studio and Zend Server
Better Bug Stomping with Zend Studio and Zend ServerZend by Rogue Wave Software
 
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016Cisco DevNet
 
Automated Testing in Continuous Change Management
Automated Testing in Continuous Change ManagementAutomated Testing in Continuous Change Management
Automated Testing in Continuous Change ManagementPerforce
 
A Tour of Swagger for APIs
A Tour of Swagger for APIsA Tour of Swagger for APIs
A Tour of Swagger for APIsAllen Dean
 
Cincom Smalltalk 2017 Roadmap
Cincom Smalltalk 2017 RoadmapCincom Smalltalk 2017 Roadmap
Cincom Smalltalk 2017 RoadmapESUG
 
Internet of Things 101 - For software engineers
Internet of Things 101 - For software engineersInternet of Things 101 - For software engineers
Internet of Things 101 - For software engineersKashif Ali Siddiqui
 

What's hot (20)

Devops with Alibaba Cloud
Devops with Alibaba CloudDevops with Alibaba Cloud
Devops with Alibaba Cloud
 
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...The Magic Behind Faster API Development, Testing and Delivery with API Virtua...
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...
 
Will you survive the API avalanche?
Will you survive the API avalanche?Will you survive the API avalanche?
Will you survive the API avalanche?
 
I Love APIs 2015 API Lab Design-first API Development Using Node and Swagger
I Love APIs 2015 API Lab Design-first API Development Using Node and SwaggerI Love APIs 2015 API Lab Design-first API Development Using Node and Swagger
I Love APIs 2015 API Lab Design-first API Development Using Node and Swagger
 
How to Contribute to Ansible
How to Contribute to AnsibleHow to Contribute to Ansible
How to Contribute to Ansible
 
Demystifying DevOps
Demystifying DevOpsDemystifying DevOps
Demystifying DevOps
 
Da DevOps a DevSecOps: Servizi applicativi di sicurezza automatizzati con F5 ...
Da DevOps a DevSecOps: Servizi applicativi di sicurezza automatizzati con F5 ...Da DevOps a DevSecOps: Servizi applicativi di sicurezza automatizzati con F5 ...
Da DevOps a DevSecOps: Servizi applicativi di sicurezza automatizzati con F5 ...
 
Infrastructure as a Code
Infrastructure as a CodeInfrastructure as a Code
Infrastructure as a Code
 
A Reference Architecture to Enable Visibility and Traceability across the Ent...
A Reference Architecture to Enable Visibility and Traceability across the Ent...A Reference Architecture to Enable Visibility and Traceability across the Ent...
A Reference Architecture to Enable Visibility and Traceability across the Ent...
 
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
 
Redefining cloud native debugging
Redefining cloud native debugging  Redefining cloud native debugging
Redefining cloud native debugging
 
Integrate Security and Compliance into your CI/CD Pipeline
Integrate Security and Compliance into your CI/CD PipelineIntegrate Security and Compliance into your CI/CD Pipeline
Integrate Security and Compliance into your CI/CD Pipeline
 
Build APIs in Node.js and Swagger 2.0 with Apigee-127
Build APIs in Node.js and Swagger 2.0 with Apigee-127Build APIs in Node.js and Swagger 2.0 with Apigee-127
Build APIs in Node.js and Swagger 2.0 with Apigee-127
 
Advanced Mocking for Swagger APIs
Advanced Mocking for Swagger APIsAdvanced Mocking for Swagger APIs
Advanced Mocking for Swagger APIs
 
Better Bug Stomping with Zend Studio and Zend Server
Better Bug Stomping with Zend Studio and Zend ServerBetter Bug Stomping with Zend Studio and Zend Server
Better Bug Stomping with Zend Studio and Zend Server
 
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
 
Automated Testing in Continuous Change Management
Automated Testing in Continuous Change ManagementAutomated Testing in Continuous Change Management
Automated Testing in Continuous Change Management
 
A Tour of Swagger for APIs
A Tour of Swagger for APIsA Tour of Swagger for APIs
A Tour of Swagger for APIs
 
Cincom Smalltalk 2017 Roadmap
Cincom Smalltalk 2017 RoadmapCincom Smalltalk 2017 Roadmap
Cincom Smalltalk 2017 Roadmap
 
Internet of Things 101 - For software engineers
Internet of Things 101 - For software engineersInternet of Things 101 - For software engineers
Internet of Things 101 - For software engineers
 

Similar to Emulators as an Emerging Best Practice for API Providers

Rome 2017: Building advanced voice assistants and chat bots
Rome 2017: Building advanced voice assistants and chat botsRome 2017: Building advanced voice assistants and chat bots
Rome 2017: Building advanced voice assistants and chat botsCisco DevNet
 
DevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseDevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseCisco DevNet
 
Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...
Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...
Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...Codemotion
 
Meeting rooms are talking! are you listening?
Meeting rooms are talking! are you listening?Meeting rooms are talking! are you listening?
Meeting rooms are talking! are you listening?Cisco DevNet
 
Stève Sfartz - Meeting rooms are talking! Are you listening? - Codemotion Ber...
Stève Sfartz - Meeting rooms are talking! Are you listening? - Codemotion Ber...Stève Sfartz - Meeting rooms are talking! Are you listening? - Codemotion Ber...
Stève Sfartz - Meeting rooms are talking! Are you listening? - Codemotion Ber...Codemotion
 
Stève Sfartz - Meeting rooms are talking! Are you listening? - Codemotion Ber...
Stève Sfartz - Meeting rooms are talking! Are you listening? - Codemotion Ber...Stève Sfartz - Meeting rooms are talking! Are you listening? - Codemotion Ber...
Stève Sfartz - Meeting rooms are talking! Are you listening? - Codemotion Ber...Codemotion
 
Cisco Connect Toronto 2018 DevNet Overview
Cisco Connect Toronto 2018  DevNet OverviewCisco Connect Toronto 2018  DevNet Overview
Cisco Connect Toronto 2018 DevNet OverviewCisco Canada
 
Build advanced chat bots - Steve Sfartz - Codemotion Amsterdam 2017
Build advanced chat bots - Steve Sfartz - Codemotion Amsterdam 2017Build advanced chat bots - Steve Sfartz - Codemotion Amsterdam 2017
Build advanced chat bots - Steve Sfartz - Codemotion Amsterdam 2017Codemotion
 
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer ToolsA Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer ToolsAmazon Web Services
 
CI/CD with AWS Code Services
CI/CD with AWS Code ServicesCI/CD with AWS Code Services
CI/CD with AWS Code ServicesPulkit Gupta
 
Breizhcamp: Créer un bot, pas si simple. Faisons le point.
Breizhcamp: Créer un bot, pas si simple. Faisons le point.Breizhcamp: Créer un bot, pas si simple. Faisons le point.
Breizhcamp: Créer un bot, pas si simple. Faisons le point.Cisco DevNet
 
Why Automate the Network?
Why Automate the Network?Why Automate the Network?
Why Automate the Network?Hank Preston
 
API Services: Building State-of-the-Art APIs
API Services: Building State-of-the-Art APIsAPI Services: Building State-of-the-Art APIs
API Services: Building State-of-the-Art APIsApigee | Google Cloud
 
Phone Communications in Javascript with Tropo Serverless
Phone Communications in Javascript with Tropo ServerlessPhone Communications in Javascript with Tropo Serverless
Phone Communications in Javascript with Tropo ServerlessCisco DevNet
 
Meeting rooms are talking. Are you listening
Meeting rooms are talking. Are you listeningMeeting rooms are talking. Are you listening
Meeting rooms are talking. Are you listeningCisco DevNet
 
Functions and DevOps
Functions and DevOpsFunctions and DevOps
Functions and DevOpsShaun Smith
 
Oracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native AppOracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native AppPaulo Alberto Simoes ∴
 
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information TechnologySeminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information TechnologyEd Burns
 
Improve Productivity with Continuous Integration & Delivery
Improve Productivity with Continuous Integration & DeliveryImprove Productivity with Continuous Integration & Delivery
Improve Productivity with Continuous Integration & DeliveryAmazon Web Services
 

Similar to Emulators as an Emerging Best Practice for API Providers (20)

Rome 2017: Building advanced voice assistants and chat bots
Rome 2017: Building advanced voice assistants and chat botsRome 2017: Building advanced voice assistants and chat bots
Rome 2017: Building advanced voice assistants and chat bots
 
DevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseDevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash course
 
Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...
Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...
Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...
 
Meeting rooms are talking! are you listening?
Meeting rooms are talking! are you listening?Meeting rooms are talking! are you listening?
Meeting rooms are talking! are you listening?
 
Stève Sfartz - Meeting rooms are talking! Are you listening? - Codemotion Ber...
Stève Sfartz - Meeting rooms are talking! Are you listening? - Codemotion Ber...Stève Sfartz - Meeting rooms are talking! Are you listening? - Codemotion Ber...
Stève Sfartz - Meeting rooms are talking! Are you listening? - Codemotion Ber...
 
Stève Sfartz - Meeting rooms are talking! Are you listening? - Codemotion Ber...
Stève Sfartz - Meeting rooms are talking! Are you listening? - Codemotion Ber...Stève Sfartz - Meeting rooms are talking! Are you listening? - Codemotion Ber...
Stève Sfartz - Meeting rooms are talking! Are you listening? - Codemotion Ber...
 
Cisco Connect Toronto 2018 DevNet Overview
Cisco Connect Toronto 2018  DevNet OverviewCisco Connect Toronto 2018  DevNet Overview
Cisco Connect Toronto 2018 DevNet Overview
 
Build advanced chat bots - Steve Sfartz - Codemotion Amsterdam 2017
Build advanced chat bots - Steve Sfartz - Codemotion Amsterdam 2017Build advanced chat bots - Steve Sfartz - Codemotion Amsterdam 2017
Build advanced chat bots - Steve Sfartz - Codemotion Amsterdam 2017
 
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer ToolsA Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
 
CI/CD with AWS Code Services
CI/CD with AWS Code ServicesCI/CD with AWS Code Services
CI/CD with AWS Code Services
 
Breizhcamp: Créer un bot, pas si simple. Faisons le point.
Breizhcamp: Créer un bot, pas si simple. Faisons le point.Breizhcamp: Créer un bot, pas si simple. Faisons le point.
Breizhcamp: Créer un bot, pas si simple. Faisons le point.
 
Why Automate the Network?
Why Automate the Network?Why Automate the Network?
Why Automate the Network?
 
API Services: Building State-of-the-Art APIs
API Services: Building State-of-the-Art APIsAPI Services: Building State-of-the-Art APIs
API Services: Building State-of-the-Art APIs
 
Serverless Kotlin
Serverless KotlinServerless Kotlin
Serverless Kotlin
 
Phone Communications in Javascript with Tropo Serverless
Phone Communications in Javascript with Tropo ServerlessPhone Communications in Javascript with Tropo Serverless
Phone Communications in Javascript with Tropo Serverless
 
Meeting rooms are talking. Are you listening
Meeting rooms are talking. Are you listeningMeeting rooms are talking. Are you listening
Meeting rooms are talking. Are you listening
 
Functions and DevOps
Functions and DevOpsFunctions and DevOps
Functions and DevOps
 
Oracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native AppOracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native App
 
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information TechnologySeminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
 
Improve Productivity with Continuous Integration & Delivery
Improve Productivity with Continuous Integration & DeliveryImprove Productivity with Continuous Integration & Delivery
Improve Productivity with Continuous Integration & Delivery
 

More from Cisco DevNet

18 facets of the OpenAPI specification - Cisco Live US 2023
18 facets of the OpenAPI specification - Cisco Live US 202318 facets of the OpenAPI specification - Cisco Live US 2023
18 facets of the OpenAPI specification - Cisco Live US 2023Cisco DevNet
 
The 12 facets of the OpenAPI standard.pdf
The 12 facets of the OpenAPI standard.pdfThe 12 facets of the OpenAPI standard.pdf
The 12 facets of the OpenAPI standard.pdfCisco DevNet
 
the 12 facets of OpenAPI
the 12 facets of OpenAPIthe 12 facets of OpenAPI
the 12 facets of OpenAPICisco DevNet
 
Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610Cisco DevNet
 
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244Cisco DevNet
 
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071Cisco DevNet
 
Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019
Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019
Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019Cisco DevNet
 
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019Cisco DevNet
 
Javascript Essentials - Cisco Live Barcelona 2019
Javascript Essentials - Cisco Live Barcelona 2019Javascript Essentials - Cisco Live Barcelona 2019
Javascript Essentials - Cisco Live Barcelona 2019Cisco DevNet
 
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...Cisco DevNet
 
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNetAdvanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNetCisco DevNet
 
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...Cisco DevNet
 
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...Cisco DevNet
 
Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896
Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896
Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896Cisco DevNet
 
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610Cisco DevNet
 
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891Cisco DevNet
 
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Cisco DevNet
 
Embedding Messages and Video Calls in your apps
Embedding Messages and Video Calls in your appsEmbedding Messages and Video Calls in your apps
Embedding Messages and Video Calls in your appsCisco DevNet
 
BotCommons: Metadata for Bots - Devoxx 2017
BotCommons: Metadata for Bots - Devoxx 2017BotCommons: Metadata for Bots - Devoxx 2017
BotCommons: Metadata for Bots - Devoxx 2017Cisco DevNet
 
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT Cisco DevNet
 

More from Cisco DevNet (20)

18 facets of the OpenAPI specification - Cisco Live US 2023
18 facets of the OpenAPI specification - Cisco Live US 202318 facets of the OpenAPI specification - Cisco Live US 2023
18 facets of the OpenAPI specification - Cisco Live US 2023
 
The 12 facets of the OpenAPI standard.pdf
The 12 facets of the OpenAPI standard.pdfThe 12 facets of the OpenAPI standard.pdf
The 12 facets of the OpenAPI standard.pdf
 
the 12 facets of OpenAPI
the 12 facets of OpenAPIthe 12 facets of OpenAPI
the 12 facets of OpenAPI
 
Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610
 
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
 
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
 
Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019
Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019
Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019
 
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019
 
Javascript Essentials - Cisco Live Barcelona 2019
Javascript Essentials - Cisco Live Barcelona 2019Javascript Essentials - Cisco Live Barcelona 2019
Javascript Essentials - Cisco Live Barcelona 2019
 
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
 
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNetAdvanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
 
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
 
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
 
Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896
Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896
Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896
 
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
 
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891
 
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
 
Embedding Messages and Video Calls in your apps
Embedding Messages and Video Calls in your appsEmbedding Messages and Video Calls in your apps
Embedding Messages and Video Calls in your apps
 
BotCommons: Metadata for Bots - Devoxx 2017
BotCommons: Metadata for Bots - Devoxx 2017BotCommons: Metadata for Bots - Devoxx 2017
BotCommons: Metadata for Bots - Devoxx 2017
 
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT
 

Recently uploaded

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 

Recently uploaded (20)

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

Emulators as an Emerging Best Practice for API Providers

  • 1. Stève Sfartz, Cisco DevNet API Architect and Developer Advocates Manager stsfartz@cisco.com API World 2018 Emulators as an Emerging Best Practice for API Providers
  • 2. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential • API Veteran, Hobbyist Coder, Hands-On Architect • Building code samples & dev tools, provide feedback, fill gaps • Manager of a WW team of Developer Evangelists • Application Development Practices (IoT, Collab, Cloud, DevOps) • Technical lead for the Cisco « API Style Guide » • What excites me? Providing great Developer eXperiences About me: //Cisco/DevNet/SteveSfartz
  • 3. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential • 500K+ members • Dev Centers, Labs, Sandboxes • Tutos Join DevNet twitter: @CiscoDevNet github: @CiscoDevNet webex: stsfartz@cisco.com twitter: @SteveSfartz github: @ObjectIsAdvantag
  • 4. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential Industry trends, Live demos, Lessons learnt Emulators as an Emerging Best Practice for API Providers
  • 5. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential • Containers -> deploy everywhere as a ‘black-box’ • CI/CD pipelines -> don’t break my flow • Sandboxes -> give me access • Serverless -> test and debug locally Industry Trends & Developer Experience
  • 6. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential Enhance the user experience in Meeetings Rooms • People Count • Administration APIs • Custom UI controls for IoT Sandboxes at Cisco DevNet Webex RoomKit
  • 7. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential In-Room Controls Simulator https://controls-editor.herokuapp.com/playground.html?virtualroom End-to-end enriched User Experience for Meeting Rooms • In-Room Control • Node.js jsxapi
  • 8. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
  • 9. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential Prototype with the RoomKit Sandboxes
  • 10. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential Coding for Serverless Platforms
  • 11. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential Coding for Serverless Platforms
  • 12. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential • Cisco Tropo is « telephony platform as a service » • In-bound / out-bound Calls and SMS • REST API endpoint • Runs 5 languages as Serverless (JS, Python, Java, Groovy, PHP) • Feedback from one year of evangelism • hackathons, meetups, tutorials • great platform • bad debugging experience An Emulator for Tropo Serverless Platform
  • 13. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential IVR script sample: auto-attendant
  • 14. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential Running Tropo Script locally
  • 15. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential • « Think big, Start small » • Start from use cases • « check scripts won’t break » • « debug locally » • Prototype / Evaluate / Arbitrate • A Javascript emulator that mimics the platform • 2 days to prototype during a DevNet Hack-a-tone • 5 days to beta running all scripts (17 commits total) • https://github.com/ObjectIsAdvantag/tropo-emulator-js Lessons learnt building the Tropo Emulator
  • 16. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential Taking emulators to the next stage https://github.com/ObjectIsAdvantag/tropo-ready-vscode
  • 17.
  • 18.
  • 19. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential • Providing an emulator opens a world of possibilities • Better if opensource • Visual Studio extension • Live running by exposing local scripts to Tropo cloud • 5 days, started with a Hack-a-tone again • https://github.com/ObjectIsAdvantag/tropo-ready-vscode Lessons learnt
  • 20. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential • A twin of your API • Fully operational • Generally NOT fully-featured • Implementing one or several use cases • Built to help your API consumers tests & debug What’s an API emulator
  • 21. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential ‘Your App’ now with Cisco Cloud Collab! Webex Teams APIs extend Cisco Cloud Collaboration GET POST DELETE PUT /Rooms /Memberships /Messages /Teams /People /Webhooks
  • 22.
  • 23. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential Webex API Emulator https://github.com/ObjectIsAdvantag/webex-api-emulator
  • 24. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
  • 25. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential Meet the Webex API Emulator
  • 26. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential Webex Teams Bot Architecture  Register webhook events • Messages / created  Memberships / created  As events happen in spaces, receive notifications from Webex  Security tips  Select spaces to fire from via a webhook filter  Check on user’s email domain in your code  Check webhook payload signature via a shared secret Webex cloud platform 1. interacts in spaces via a Teams client Webex Teams User Your bot code running on-premises or on in the cloud 2. posts notifications to registered Webhooks 3. posts back messages as notifications fly in Publicly accessible bot endpoint
  • 27. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 1. Testing (devops) 2. QA (non-regression, versioning) 3. Experimentating (API design, vNext) 4. Backup (training in restricted environments) Uses cases for API Emulators
  • 28. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential • Scope • Think big, Start small • Document the use cases you want to cover • Design your emulator • Keep it light (in-memory persistance) • Hyper quick to implement: couple of days • Build • Pick a raw HTTP framework to have maximum flexibility to mimic your payloads Lessons learnt
  • 29. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential • Are there alternatives? - API Emulator vs Mocking - API Emulator vs Service Virtualization • How to compare ? - Start from your use cases! Thoughs
  • 30. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential • Who are the customers of your API emulator? - your developer community - Internally (Product Management) Thoughts
  • 31. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential • Seriously consider adding Emulator(s) to your API Product • Narrow the use cases your emulator will cover • Build it in hours/days, not weeks/months • Opensource it: building block for other use cases & tools • Observe how your developer community leverages it • Add a disclaimer (best-effort) Wrapup
  • 32. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential • Webex Emulator • https://github.com/ObjectIsAdvantag/webex-api-emulator • Tropo Emulator • https://github.com/ObjectIsAdvantag/tropo-emulator-js • Tropo-Ready plugin for Visual Studio code • https://github.com/ObjectIsAdvantag/tropo-ready-vscode • DevNet Code Exchange • https://developer.cisco.com/codeexchange/ Resources
  • 33. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential • 500K+ members • Dev Centers, Labs, Sandboxes • Tutos Join DevNet twitter: @CiscoDevNet webex: stsfartz@cisco.com twitter: @SteveSfartz github: @ObjectIsAdvantag
  • 34. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential Thank you