SlideShare a Scribd company logo
Welcome!
• We’ll use postman for some of our examples. If you would like to follow along,
download postman now. www.getpostman.com.
• Feel free to pair with someone!
• Our Postman demo collection will be available with our presentation materials.
• Follow @apidemo_carter onTwitter!
JoEllen Carter / Lisa Crispin
Overview
• What is an API?
• History of API growth
• Current API landscape
• HowAPIs work, including some hands-on demos
• Strategies and tools for testing an API
• API Stories
What is an
Application
Programming
Interface?
!!!
Interfaces
• Touch
• Voice
• Sight
Api FUNdamentals #MHA2017
API
Your
application The world !!!
2000 2002 2004 2006 2008
Api FUNdamentals #MHA2017
Why RESTful?
• REST: Representational state transfer
• Uniform and predefined set of stateless
operations
• People can “just know things” about an API
that’s RESTful
Api FUNdamentals #MHA2017
How does an
Application Programming
Interface
Work?
RPC SOAP HTTP HTTPS CoAP …
HTTPRequest
URL
Method
Headers
Body
URL
https://api.twitter.com/1.1/statuses/update.json?status=testing
{base url} / {version} / {endpoint} ? {query parameters}
GET
• Get some data about an object or
‘resource’
POST • Create a new resource
PUT • Update a resource
DELETE • Delete a resource
Methods
Headers
• Headers are key/value combinations that specify
additional information about the request
• Some common request headers are:
• Content-type
• Authentication
• Accept
• Origin
Body
• Data to send with the
request – usually for a
POST or PUT
• Data format – xml,
json, etc. - is specified
by the content-type
header
{
"location": {
"lat": -33.8669710,
"lng": 151.1958750
},
"accuracy": 50,
"name": "Google Shoes!",
"phone_number": "(02) 9374
4000",
"address": "48 Pirrama Road,
Pyrmont, NSW 2009, Australia",
"types": ["shoe_store"],
"website":
"http://www.google.com.au/",
"language": "en-AU"
}
What about cookies?
• Restful API requests should be self-reliant
• Cookies are session-dependent, so not
independent
• Using cookies to store data means your
API is not Restful
Authentication
• Insecure - Authorization token in url
• https://api.darksky.net/forecast/{{token}}
/39.9026420,-105.0905190
• https://maps.googleapis.com/maps/api/p
lace/nearbysearch/json?key={{googlema
psKey}}
• Basic
• Username:password are concatenated
and encoded
• Sent in Authorization header
Authentication - Oauth
• Oauth1/2 - https://oauth.net/
Service Provider
Api FUNdamentals #MHA2017
Authentication - JWT
JSON WebToken https://jwt.io/ - an open standard (RFC 7519)
that defines a compact and self-contained way for securely
transmitting information between parties as a JSON object.
• Header – type of token (JWT) and hashing (signing) algorithm
• Payload – contains ‘claims’, or information about the user
• Signature = signature from header-specified algorithm using
encoded Header + encoded payload + secret
Let’s try a GET now…
• We’ll hit the dark sky api to get our current
weather
HTTPResponse
URL
Status Code
Headers
Body
OK200
Bad Request400
Forbidden403
Not Found404
Internal Server Error500
Service Unavailable503
GatewayTimeout504
Common
Status
Codes
Let’s try a POST now…
• We’ll post a tweet from #MHA2017
How do we
test
API’s?
Security
• Basic
• Authentication tokens are valid/present
• Account boundaries are not violated
• SSL is enforced/warned when not present
• Hacker-in-training
• Injection points – headers, parameters, body
• Recording tools – what is exposed/available
• White Hat hacker - OWASP
• Rest Security Cheat Sheet
• OWASP top 10 security vulnerabilities – new
section on Under-protected APIs
Functional
• Basic
• Correct status codes are generated for invalid
inputs
• Request/response bodies contain the correct
content type and schema
• Backwards-compatibility for public APIs -
previous tests continue to pass or breaking
changes are clearly documented – aka
regression testing
• Advanced
• Join API requests together to mirror application
functionality
Exploratory
• Identify the variable bits - things that can/will/might
change
• Requests –
• Method
• Mix/match endpoints
• Parameters
• Headers, especially content type
• ContentType
• Size, Depth - images, json/xml nesting
• Timing & Frequency – what happens with caching?
Heuristics
• Apply Heuristics to the variables
• Zero, One, Many
• Some, None,All
• Beginning, Middle, End
• Too Many,Too Few
• Relative Position, i.e. content
Automation
• Part of your CI/CD pipeline
• Part of development process since tests can be
run in both local and pre-production
environments
• Performance
• Combine tests with monitoring
• Tools
• Postman
• Command line runner that can be integrated
into your CI
• Developer adoption is high
• Runscope
• Powerful code snippets
Supporting an API
Tracker API, rewritten in 2012-13
• Our own client software uses public API, same as customers
• With some private endpoints
• Leading practices: RESTful, JSON in & out,
• Versioning
• Only changes are additions
• Promote new endpoints through various stages
• “edge” version
• Metadata-driven
• Reference doc generated from metadata and unit test outputs
Long-term results
• Few support requests
• Thanks to comprehensive unit tests, comprehensive doc & examples
• Comprehensive doc for devs to introduce new endpoints
• Many new endpoints added
• Mostly without pain – one backwards compatibility issue
• Postman regression tests run in CI in addition to unit tests
• Include performance checks
Questions? Stories?
Take-aways
• APIs are the engine behind the apps we
use every day
• APIs are an integral part of our agile
processes - APIs make apps more testable,
and can be tested!
• APIs add value to your product - maybe
your company/product/team needs an
API?
• You’ve learned some terms about RESTful
web services – go forth and learn more!
Links
• ProgrammableWeb
• API Security Testing
• OWASPTop 10 Project
• List of HTTP Header fields
• Varonis - Introduction to Oauth
• Oauth.net
• Understanding rest and rpc

More Related Content

What's hot (16)

PDF
Assuring the code quality of share point solutions and apps - Matthias Einig
SPC Adriatics
 
PDF
Micro Services - Neither Micro Nor Service
Eberhard Wolff
 
PPTX
Postman Introduction
Rahul Agarwal
 
PPTX
Process Orchestration with Flowable and Spring Boot
Chavdar Baikov
 
PPTX
Practical Application of API-First in microservices development
Chavdar Baikov
 
PDF
Continuous Delivery and Micro Services - A Symbiosis
Eberhard Wolff
 
PPTX
Continuous Integration and Delivery at Shapeways (Matt Boyle)
Nordic APIs
 
PDF
AOEcon17: Searchperience - The journey from PHP and Solr to Scala and Elastic...
AOE
 
PDF
Heroku
Eberhard Wolff
 
PDF
Java Architectures - a New Hope
Eberhard Wolff
 
PDF
Agile North East Agile + DevOps by Craig Pearson of CAP Project Services
Craig Pearson
 
PPTX
DevCon 2018 - 5 ways to use AWS with Alfresco
Gavin Cornwell
 
PDF
Mocking APIs Collaboratively with Postman
Nordic APIs
 
PPTX
Selenium-4-and-appium-2
Manoj Kumar Kumar
 
PPTX
Selenium-4
Manoj Kumar Kumar
 
PPTX
Vs java (1)
Rory Preddy
 
Assuring the code quality of share point solutions and apps - Matthias Einig
SPC Adriatics
 
Micro Services - Neither Micro Nor Service
Eberhard Wolff
 
Postman Introduction
Rahul Agarwal
 
Process Orchestration with Flowable and Spring Boot
Chavdar Baikov
 
Practical Application of API-First in microservices development
Chavdar Baikov
 
Continuous Delivery and Micro Services - A Symbiosis
Eberhard Wolff
 
Continuous Integration and Delivery at Shapeways (Matt Boyle)
Nordic APIs
 
AOEcon17: Searchperience - The journey from PHP and Solr to Scala and Elastic...
AOE
 
Java Architectures - a New Hope
Eberhard Wolff
 
Agile North East Agile + DevOps by Craig Pearson of CAP Project Services
Craig Pearson
 
DevCon 2018 - 5 ways to use AWS with Alfresco
Gavin Cornwell
 
Mocking APIs Collaboratively with Postman
Nordic APIs
 
Selenium-4-and-appium-2
Manoj Kumar Kumar
 
Selenium-4
Manoj Kumar Kumar
 
Vs java (1)
Rory Preddy
 

Similar to Api FUNdamentals #MHA2017 (20)

PDF
Api fundamentals
AgileDenver
 
PPTX
Apitesting.pptx
NamanVerma88
 
PDF
API testing Notes and features, difference.pdf
kunjukunjuzz904
 
PDF
Api Testing.pdf
JitendraYadav351971
 
PDF
Agile Testing Days 2018 USA - API Testing Fundamentals
JoEllen Carter
 
PPTX
Soap UI and postman
Tushar Agarwal
 
PPTX
Api Testing
Vishwanath KC
 
PPTX
Api Testing
Vishwanath KC
 
PPTX
API testing - Japura.pptx
TharindaLiyanage1
 
PPTX
Best Practices for Architecting a Pragmatic Web API.
Mario Cardinal
 
PDF
API Testing. Streamline your testing process.
Andrey Oleynik
 
PDF
Api Design and More (Friday Training at Itnig)
itnig
 
PPTX
API Testing Using REST Assured with TestNG
Siddharth Sharma
 
PPT
Postman.ppt
ParrotBAD
 
PPTX
Standards of rest api
Maýur Chourasiya
 
ODP
Attacking REST API
Siddharth Bezalwar
 
PDF
Facebook & Twitter API
Fabrice Delhoste
 
PPTX
Rest Webservice
Viyaan Jhiingade
 
PDF
REST API Basics
Tharindu Weerasinghe
 
Api fundamentals
AgileDenver
 
Apitesting.pptx
NamanVerma88
 
API testing Notes and features, difference.pdf
kunjukunjuzz904
 
Api Testing.pdf
JitendraYadav351971
 
Agile Testing Days 2018 USA - API Testing Fundamentals
JoEllen Carter
 
Soap UI and postman
Tushar Agarwal
 
Api Testing
Vishwanath KC
 
Api Testing
Vishwanath KC
 
API testing - Japura.pptx
TharindaLiyanage1
 
Best Practices for Architecting a Pragmatic Web API.
Mario Cardinal
 
API Testing. Streamline your testing process.
Andrey Oleynik
 
Api Design and More (Friday Training at Itnig)
itnig
 
API Testing Using REST Assured with TestNG
Siddharth Sharma
 
Postman.ppt
ParrotBAD
 
Standards of rest api
Maýur Chourasiya
 
Attacking REST API
Siddharth Bezalwar
 
Facebook & Twitter API
Fabrice Delhoste
 
Rest Webservice
Viyaan Jhiingade
 
REST API Basics
Tharindu Weerasinghe
 
Ad

More from JoEllen Carter (6)

TXT
Agile Testing Days 2018 - API Fundamentals - postman collection
JoEllen Carter
 
DOCX
Mapping Mashup Story Mapping Exercise 3 uncolored cards
JoEllen Carter
 
DOCX
Mapping Mashup Exercise solutions
JoEllen Carter
 
PDF
Mapping Mashup Exercise handouts
JoEllen Carter
 
PPTX
Atd 2016-mapping-mashup
JoEllen Carter
 
PDF
Agile testing to build the right thing - Lisa Crispin and JoEllen Carter
JoEllen Carter
 
Agile Testing Days 2018 - API Fundamentals - postman collection
JoEllen Carter
 
Mapping Mashup Story Mapping Exercise 3 uncolored cards
JoEllen Carter
 
Mapping Mashup Exercise solutions
JoEllen Carter
 
Mapping Mashup Exercise handouts
JoEllen Carter
 
Atd 2016-mapping-mashup
JoEllen Carter
 
Agile testing to build the right thing - Lisa Crispin and JoEllen Carter
JoEllen Carter
 
Ad

Recently uploaded (20)

PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
July Patch Tuesday
Ivanti
 
PDF
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
July Patch Tuesday
Ivanti
 
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 

Api FUNdamentals #MHA2017

  • 1. Welcome! • We’ll use postman for some of our examples. If you would like to follow along, download postman now. www.getpostman.com. • Feel free to pair with someone! • Our Postman demo collection will be available with our presentation materials. • Follow @apidemo_carter onTwitter!
  • 2. JoEllen Carter / Lisa Crispin
  • 3. Overview • What is an API? • History of API growth • Current API landscape • HowAPIs work, including some hands-on demos • Strategies and tools for testing an API • API Stories
  • 5. !!!
  • 9. 2000 2002 2004 2006 2008
  • 11. Why RESTful? • REST: Representational state transfer • Uniform and predefined set of stateless operations • People can “just know things” about an API that’s RESTful
  • 13. How does an Application Programming Interface Work?
  • 14. RPC SOAP HTTP HTTPS CoAP …
  • 17. GET • Get some data about an object or ‘resource’ POST • Create a new resource PUT • Update a resource DELETE • Delete a resource Methods
  • 18. Headers • Headers are key/value combinations that specify additional information about the request • Some common request headers are: • Content-type • Authentication • Accept • Origin
  • 19. Body • Data to send with the request – usually for a POST or PUT • Data format – xml, json, etc. - is specified by the content-type header { "location": { "lat": -33.8669710, "lng": 151.1958750 }, "accuracy": 50, "name": "Google Shoes!", "phone_number": "(02) 9374 4000", "address": "48 Pirrama Road, Pyrmont, NSW 2009, Australia", "types": ["shoe_store"], "website": "http://www.google.com.au/", "language": "en-AU" }
  • 20. What about cookies? • Restful API requests should be self-reliant • Cookies are session-dependent, so not independent • Using cookies to store data means your API is not Restful
  • 21. Authentication • Insecure - Authorization token in url • https://api.darksky.net/forecast/{{token}} /39.9026420,-105.0905190 • https://maps.googleapis.com/maps/api/p lace/nearbysearch/json?key={{googlema psKey}} • Basic • Username:password are concatenated and encoded • Sent in Authorization header
  • 22. Authentication - Oauth • Oauth1/2 - https://oauth.net/ Service Provider
  • 24. Authentication - JWT JSON WebToken https://jwt.io/ - an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. • Header – type of token (JWT) and hashing (signing) algorithm • Payload – contains ‘claims’, or information about the user • Signature = signature from header-specified algorithm using encoded Header + encoded payload + secret
  • 25. Let’s try a GET now… • We’ll hit the dark sky api to get our current weather
  • 27. OK200 Bad Request400 Forbidden403 Not Found404 Internal Server Error500 Service Unavailable503 GatewayTimeout504 Common Status Codes
  • 28. Let’s try a POST now… • We’ll post a tweet from #MHA2017
  • 30. Security • Basic • Authentication tokens are valid/present • Account boundaries are not violated • SSL is enforced/warned when not present • Hacker-in-training • Injection points – headers, parameters, body • Recording tools – what is exposed/available • White Hat hacker - OWASP • Rest Security Cheat Sheet • OWASP top 10 security vulnerabilities – new section on Under-protected APIs
  • 31. Functional • Basic • Correct status codes are generated for invalid inputs • Request/response bodies contain the correct content type and schema • Backwards-compatibility for public APIs - previous tests continue to pass or breaking changes are clearly documented – aka regression testing • Advanced • Join API requests together to mirror application functionality
  • 32. Exploratory • Identify the variable bits - things that can/will/might change • Requests – • Method • Mix/match endpoints • Parameters • Headers, especially content type • ContentType • Size, Depth - images, json/xml nesting • Timing & Frequency – what happens with caching?
  • 33. Heuristics • Apply Heuristics to the variables • Zero, One, Many • Some, None,All • Beginning, Middle, End • Too Many,Too Few • Relative Position, i.e. content
  • 34. Automation • Part of your CI/CD pipeline • Part of development process since tests can be run in both local and pre-production environments • Performance • Combine tests with monitoring • Tools • Postman • Command line runner that can be integrated into your CI • Developer adoption is high • Runscope • Powerful code snippets
  • 35. Supporting an API Tracker API, rewritten in 2012-13 • Our own client software uses public API, same as customers • With some private endpoints • Leading practices: RESTful, JSON in & out, • Versioning • Only changes are additions • Promote new endpoints through various stages • “edge” version • Metadata-driven • Reference doc generated from metadata and unit test outputs
  • 36. Long-term results • Few support requests • Thanks to comprehensive unit tests, comprehensive doc & examples • Comprehensive doc for devs to introduce new endpoints • Many new endpoints added • Mostly without pain – one backwards compatibility issue • Postman regression tests run in CI in addition to unit tests • Include performance checks
  • 38. Take-aways • APIs are the engine behind the apps we use every day • APIs are an integral part of our agile processes - APIs make apps more testable, and can be tested! • APIs add value to your product - maybe your company/product/team needs an API? • You’ve learned some terms about RESTful web services – go forth and learn more!
  • 39. Links • ProgrammableWeb • API Security Testing • OWASPTop 10 Project • List of HTTP Header fields • Varonis - Introduction to Oauth • Oauth.net • Understanding rest and rpc