SlideShare a Scribd company logo
What to know
before you start
dating with APIs!
Nithin SS / Fave
• A passionate tester & blogger
• QA Lead, Fave Malaysia
• Founder - Synapse QA
Hello!
Nithin SS
nithin-ss Nithin_Synapse
"I am not being a love guru here, this is a
sharing on how I fell in love with APIs"
@Nithin_Synapse
Long lasting relations
depends on how we take our
First Moves
@Nithin_Synapse
#4 : Happily
ever after
#2 : Some dates
not look the same
as we expect
#1 : Scary first
meetup
#3 : Abnormal
Dates &
Breakups
Up for a date with
APIs?
@Nithin_Synapse
LET'S
date?
@Nithin_Synapse
What is an API?
Application: Interactions of different applications
Programming: Programmatically interact with different
applications / piece of code
Interface: Interface to interact with other piece of codes,
follows the principle of abstraction
@Nithin_Synapse
Types of APIs
REST
• REpresentational State Transfer
• Follows a set of guidelines
• REST is a collection of
architectural principles rather
than a protocol like other web
services
SOAP
• Simple Object Access Protocol
• Uses XML as a format to transfer
data
• Main function is to define the
structure of the messages and
methods of communication
@Nithin_Synapse
Let's see what an API does...
Imagine a situation of ordering a dish from a restaurant
• Customer (Application) is in a Restaurant and checks the Menu for the
desired dish.
• Then call the Waiter (API) and request that dish.
• Then the Waiter checks the availability of the dish in the Kitchen (Server),
and will get an update from kitchen informing whether the dish is available
or not, the waiter returns to you with the update(Response).
Technically, API is a set of rules that allow programs to talk to each other. The
developer creates the API on the server and allows the client to talk to it
@Nithin_Synapse
Request Methods
GET
Used to retrieve data from a server at
the specified resource. For example, say
you have an API with a /users endpoint.
Making a GET request to that endpoint
should return a list of all available users.
POST
Used to send data to the API server to
create or update a resource. The data
sent to the server is stored in the
request body of the HTTP request.
The simplest example is a contact form
on a website.
@Nithin_Synapse
Request Methods
PUT
Used to send data to the API to create or
update a resource.
The difference is that PUT requests are
idempotent. That is, calling the same PUT
request multiple times will always produce
the same result. In contrast, calling a POST
request repeatedly have side effects of
creating the same resource multiple times
DELETE
Used to delete the resource at the
specified URL
@Nithin_Synapse
Usage
If a new user is created with a POST request to /users, and
it can be retrieved with a GET request to /users/{{userid}},
user details can be updated using a PUT request, and then
making a DELETE request to /users/{{userid}} will
completely remove that user
@Nithin_Synapse
Status Codes
2xx (Success)
• 200 OK: Request was successful
• 201 Created: Something new was
created based on request
• 204 No Content: Request success,
but no data send back
4xx (Client Error)
• 400 Bad Request: Server did not understand
the request
• 401 Unauthorised: Client must be
authorised via login
• 403 Forbidden: Client doesn't have
permission to access requested document
• 404 Not Found: Requested document is not
found on the URL given
@Nithin_Synapse
Status Codes
5xx (Server Errors)
• 500 Internal Server Error: Generic
Error message meaning that
something broken.
3xx (Redirects)
• 301 Moved Permanently :
Requested document was moved
and response contains the URL of
new location.
• 302 Found: Requested document
temporarily moved to a different
location.
@Nithin_Synapse
Authorization and Authentication
Authentication is all about proving who you are.
Authorization is all about proving what you can do.
@Nithin_Synapse
GET Method
@Nithin_Synapse
POST Method
@Nithin_Synapse
PUT Method
@Nithin_Synapse
DELETE Method
@Nithin_Synapse
API Testing Tips
• Understand API requirements
• Specify the API output status
• Organize API endpoints
• Focus on small functional APIs
• Leverage automation capability
• Choose the right tool
• Define verification methods
• Create positive and negative tests
@Nithin_Synapse
Sneak peak into API Security
• Broken object level authorization
• Broken authentication
• Excessive data exposure
• Lack of resources and rate limiting
• Broken function level authorization
• Mass assignment
• Security misconfiguration
• Injection
• Improper assets management
• Insufficient logging and monitoring
Source OWASP API Security Top 10
@Nithin_Synapse
Broken object level authorization
Source APIsecurity.io
Attackers substitute the ID of
their own resource in the API call
with an ID of a resource
belonging to another user. The
lack of proper authorization
checks allows attackers to access
the specified resource.
@Nithin_Synapse
Broken authentication
Source APIsecurity.io
Poorly implemented API
authentication allows
attackers to assume other
users’ identities.
@Nithin_Synapse
Excessive data exposure
Source APIsecurity.io
The API may expose a lot more
data than what the client
legitimately needs, relying on
the client to do the filtering. If
attackers go directly to the API,
they have it all.
@Nithin_Synapse
Lack of resources and rate limiting
Source APIsecurity.io
The API is not protected against
an excessive amount of calls or
payload sizes. Attackers can use
this for Denial of Service (DoS)
and authentication flaws like
brute force attacks.
@Nithin_Synapse
Broken function level authorization
Source APIsecurity.io
The API relies on the client to
use user level or admin level
APIs as appropriate. Attackers
figure out the “hidden” admin
API methods and invoke them
directly.
@Nithin_Synapse
Mass assignment
Source APIsecurity.io
The API takes data that client provides and
stores it without proper filtering for whitelisted
properties. Attackers can try to guess object
properties or provide additional object
properties in their requests, read the
documentation, or check out API endpoints for
clues where to find the openings to modify
properties they are not supposed to on the data
objects stored in the backend.
@Nithin_Synapse
Security misconfiguration
Source APIsecurity.io
Poor configuration of the API
servers allows attackers to
exploit them.
@Nithin_Synapse
Injection
Source APIsecurity.io
Attackers construct API calls
that include SQL, NoSQL,
LDAP, OS, or other commands
that the API or the backend
behind it blindly executes.
@Nithin_Synapse
Improper assets management
Source APIsecurity.io
Attackers find non-production
versions of the API (for example,
staging, testing, beta, or earlier
versions) that are not as well
protected as the production API,
and use those to launch their
attacks.
@Nithin_Synapse
Insufficient logging and monitoring
Source APIsecurity.io
Lack of proper logging,
monitoring, and alerting allows
attacks and attackers go
unnoticed.
@Nithin_Synapse
Creating and maintaining automated
API tests
https://ibb.co/CQVCcxh
Have a wonderful relationship with
APIs
nithin-ss
Nithin_Synapse
Further Read:
https://bit.ly/rest-postman
https://apisecurity.io/
THANK YOU!
nithin.ss@synapse-qa.com
synapse-qa.com

More Related Content

Similar to API Summit 2021: What to know before you start dating APIs.pdf

oauth-for-credentials-security-in-rest-api-access
oauth-for-credentials-security-in-rest-api-accessoauth-for-credentials-security-in-rest-api-access
oauth-for-credentials-security-in-rest-api-access
idsecconf
 
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
Jitendra Bafna
 
Rest WebAPI with OData
Rest WebAPI with ODataRest WebAPI with OData
Rest WebAPI with OData
Mahek Merchant
 
REST API Basics
REST API BasicsREST API Basics
REST API Basics
Tharindu Weerasinghe
 
Design API using RAML - basics
Design API using RAML - basicsDesign API using RAML - basics
Design API using RAML - basics
kunal vishe
 
RESTful Services
RESTful ServicesRESTful Services
RESTful Services
Jason Gerard
 
APIs: The New Security Layer
APIs: The New Security LayerAPIs: The New Security Layer
APIs: The New Security Layer
Apigee | Google Cloud
 
Pragmatic REST APIs
Pragmatic REST APIsPragmatic REST APIs
Pragmatic REST APIs
amesar0
 
Moving into API documentation writing
Moving into API documentation writingMoving into API documentation writing
Moving into API documentation writing
Ellis Pratt
 
A Practical Guide to Automating End-to-End API Testing
A Practical Guide to Automating End-to-End API TestingA Practical Guide to Automating End-to-End API Testing
A Practical Guide to Automating End-to-End API Testing
pCloudy
 
API for newbs
API for newbsAPI for newbs
API for newbs
Mykhailo Sheludiakov
 
Recipes for API Ninjas
Recipes for API NinjasRecipes for API Ninjas
Recipes for API Ninjas
Nordic APIs
 
REST 101: An Overview To Representational State Transfer.
REST 101: An Overview To Representational State Transfer.REST 101: An Overview To Representational State Transfer.
REST 101: An Overview To Representational State Transfer.
Omar Fernando Zafe
 
RESTful HATEOAS standards using Java based Katharsis
RESTful HATEOAS standards using Java based KatharsisRESTful HATEOAS standards using Java based Katharsis
RESTful HATEOAS standards using Java based Katharsis
Keith Moore
 
RESTful HATEOAS standards using Java based Katharsis
RESTful HATEOAS standards using Java based KatharsisRESTful HATEOAS standards using Java based Katharsis
RESTful HATEOAS standards using Java based Katharsis
Keith Moore
 
Top 20 API Testing Interview Questions.pdf
Top 20 API Testing Interview Questions.pdfTop 20 API Testing Interview Questions.pdf
Top 20 API Testing Interview Questions.pdf
AnanthReddy38
 
Twitter api
Twitter apiTwitter api
Twitter api
kaleem malick
 
What is API Testing? A Brief Introduction
What is API Testing? A Brief IntroductionWhat is API Testing? A Brief Introduction
What is API Testing? A Brief Introduction
StudySection
 

Similar to API Summit 2021: What to know before you start dating APIs.pdf (20)

oauth-for-credentials-security-in-rest-api-access
oauth-for-credentials-security-in-rest-api-accessoauth-for-credentials-security-in-rest-api-access
oauth-for-credentials-security-in-rest-api-access
 
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
 
Rest WebAPI with OData
Rest WebAPI with ODataRest WebAPI with OData
Rest WebAPI with OData
 
ReSTful API Final
ReSTful API FinalReSTful API Final
ReSTful API Final
 
REST API Basics
REST API BasicsREST API Basics
REST API Basics
 
Design API using RAML - basics
Design API using RAML - basicsDesign API using RAML - basics
Design API using RAML - basics
 
RESTful Services
RESTful ServicesRESTful Services
RESTful Services
 
APITalkMeetupSharable
APITalkMeetupSharableAPITalkMeetupSharable
APITalkMeetupSharable
 
APIs: The New Security Layer
APIs: The New Security LayerAPIs: The New Security Layer
APIs: The New Security Layer
 
Pragmatic REST APIs
Pragmatic REST APIsPragmatic REST APIs
Pragmatic REST APIs
 
Moving into API documentation writing
Moving into API documentation writingMoving into API documentation writing
Moving into API documentation writing
 
A Practical Guide to Automating End-to-End API Testing
A Practical Guide to Automating End-to-End API TestingA Practical Guide to Automating End-to-End API Testing
A Practical Guide to Automating End-to-End API Testing
 
API for newbs
API for newbsAPI for newbs
API for newbs
 
Recipes for API Ninjas
Recipes for API NinjasRecipes for API Ninjas
Recipes for API Ninjas
 
REST 101: An Overview To Representational State Transfer.
REST 101: An Overview To Representational State Transfer.REST 101: An Overview To Representational State Transfer.
REST 101: An Overview To Representational State Transfer.
 
RESTful HATEOAS standards using Java based Katharsis
RESTful HATEOAS standards using Java based KatharsisRESTful HATEOAS standards using Java based Katharsis
RESTful HATEOAS standards using Java based Katharsis
 
RESTful HATEOAS standards using Java based Katharsis
RESTful HATEOAS standards using Java based KatharsisRESTful HATEOAS standards using Java based Katharsis
RESTful HATEOAS standards using Java based Katharsis
 
Top 20 API Testing Interview Questions.pdf
Top 20 API Testing Interview Questions.pdfTop 20 API Testing Interview Questions.pdf
Top 20 API Testing Interview Questions.pdf
 
Twitter api
Twitter apiTwitter api
Twitter api
 
What is API Testing? A Brief Introduction
What is API Testing? A Brief IntroductionWhat is API Testing? A Brief Introduction
What is API Testing? A Brief Introduction
 

More from NITHIN S.S

The beginning of breaking the shell & enroute to growth
The beginning of breaking the shell & enroute to growthThe beginning of breaking the shell & enroute to growth
The beginning of breaking the shell & enroute to growth
NITHIN S.S
 
Mobile DevOps Summit_ Shift before you Suffer - Future of building the right ...
Mobile DevOps Summit_ Shift before you Suffer - Future of building the right ...Mobile DevOps Summit_ Shift before you Suffer - Future of building the right ...
Mobile DevOps Summit_ Shift before you Suffer - Future of building the right ...
NITHIN S.S
 
PractiTest Webinar_ The Hidden Logic of Thinking for Testers.pdf
PractiTest Webinar_ The Hidden Logic of Thinking for Testers.pdfPractiTest Webinar_ The Hidden Logic of Thinking for Testers.pdf
PractiTest Webinar_ The Hidden Logic of Thinking for Testers.pdf
NITHIN S.S
 
Geekle QA Summit 22.2_ The Curious Case of Mobile App Performance Testing.pdf
Geekle QA Summit 22.2_ The Curious Case of Mobile App Performance Testing.pdfGeekle QA Summit 22.2_ The Curious Case of Mobile App Performance Testing.pdf
Geekle QA Summit 22.2_ The Curious Case of Mobile App Performance Testing.pdf
NITHIN S.S
 
Enhance mobile app testing with performance-centric strategies: SauceCon 2022
Enhance mobile app testing with performance-centric strategies: SauceCon 2022Enhance mobile app testing with performance-centric strategies: SauceCon 2022
Enhance mobile app testing with performance-centric strategies: SauceCon 2022
NITHIN S.S
 
Testing United 2021: The hidden logic of thinking for testers.pdf
Testing United 2021: The hidden logic of thinking for testers.pdfTesting United 2021: The hidden logic of thinking for testers.pdf
Testing United 2021: The hidden logic of thinking for testers.pdf
NITHIN S.S
 
TestFlix: 10 Usability Heuristics & Testing
TestFlix: 10 Usability Heuristics &  TestingTestFlix: 10 Usability Heuristics &  Testing
TestFlix: 10 Usability Heuristics & Testing
NITHIN S.S
 
[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...
[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...
[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...
NITHIN S.S
 
How 3 p’s (process, planning & pairing) helped us to engage teams
How  3 p’s (process, planning & pairing)  helped us to engage teamsHow  3 p’s (process, planning & pairing)  helped us to engage teams
How 3 p’s (process, planning & pairing) helped us to engage teams
NITHIN S.S
 
How I Break The Shell With L.I.E.S
How I Break The Shell With L.I.E.SHow I Break The Shell With L.I.E.S
How I Break The Shell With L.I.E.S
NITHIN S.S
 
MoT KL Meetup #3 Presentation
MoT KL Meetup #3 PresentationMoT KL Meetup #3 Presentation
MoT KL Meetup #3 Presentation
NITHIN S.S
 

More from NITHIN S.S (11)

The beginning of breaking the shell & enroute to growth
The beginning of breaking the shell & enroute to growthThe beginning of breaking the shell & enroute to growth
The beginning of breaking the shell & enroute to growth
 
Mobile DevOps Summit_ Shift before you Suffer - Future of building the right ...
Mobile DevOps Summit_ Shift before you Suffer - Future of building the right ...Mobile DevOps Summit_ Shift before you Suffer - Future of building the right ...
Mobile DevOps Summit_ Shift before you Suffer - Future of building the right ...
 
PractiTest Webinar_ The Hidden Logic of Thinking for Testers.pdf
PractiTest Webinar_ The Hidden Logic of Thinking for Testers.pdfPractiTest Webinar_ The Hidden Logic of Thinking for Testers.pdf
PractiTest Webinar_ The Hidden Logic of Thinking for Testers.pdf
 
Geekle QA Summit 22.2_ The Curious Case of Mobile App Performance Testing.pdf
Geekle QA Summit 22.2_ The Curious Case of Mobile App Performance Testing.pdfGeekle QA Summit 22.2_ The Curious Case of Mobile App Performance Testing.pdf
Geekle QA Summit 22.2_ The Curious Case of Mobile App Performance Testing.pdf
 
Enhance mobile app testing with performance-centric strategies: SauceCon 2022
Enhance mobile app testing with performance-centric strategies: SauceCon 2022Enhance mobile app testing with performance-centric strategies: SauceCon 2022
Enhance mobile app testing with performance-centric strategies: SauceCon 2022
 
Testing United 2021: The hidden logic of thinking for testers.pdf
Testing United 2021: The hidden logic of thinking for testers.pdfTesting United 2021: The hidden logic of thinking for testers.pdf
Testing United 2021: The hidden logic of thinking for testers.pdf
 
TestFlix: 10 Usability Heuristics & Testing
TestFlix: 10 Usability Heuristics &  TestingTestFlix: 10 Usability Heuristics &  Testing
TestFlix: 10 Usability Heuristics & Testing
 
[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...
[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...
[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...
 
How 3 p’s (process, planning & pairing) helped us to engage teams
How  3 p’s (process, planning & pairing)  helped us to engage teamsHow  3 p’s (process, planning & pairing)  helped us to engage teams
How 3 p’s (process, planning & pairing) helped us to engage teams
 
How I Break The Shell With L.I.E.S
How I Break The Shell With L.I.E.SHow I Break The Shell With L.I.E.S
How I Break The Shell With L.I.E.S
 
MoT KL Meetup #3 Presentation
MoT KL Meetup #3 PresentationMoT KL Meetup #3 Presentation
MoT KL Meetup #3 Presentation
 

Recently uploaded

De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 

Recently uploaded (20)

De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 

API Summit 2021: What to know before you start dating APIs.pdf

  • 1. What to know before you start dating with APIs! Nithin SS / Fave
  • 2. • A passionate tester & blogger • QA Lead, Fave Malaysia • Founder - Synapse QA Hello! Nithin SS nithin-ss Nithin_Synapse
  • 3. "I am not being a love guru here, this is a sharing on how I fell in love with APIs" @Nithin_Synapse
  • 4. Long lasting relations depends on how we take our First Moves @Nithin_Synapse
  • 5. #4 : Happily ever after #2 : Some dates not look the same as we expect #1 : Scary first meetup #3 : Abnormal Dates & Breakups Up for a date with APIs? @Nithin_Synapse LET'S date?
  • 6. @Nithin_Synapse What is an API? Application: Interactions of different applications Programming: Programmatically interact with different applications / piece of code Interface: Interface to interact with other piece of codes, follows the principle of abstraction
  • 7. @Nithin_Synapse Types of APIs REST • REpresentational State Transfer • Follows a set of guidelines • REST is a collection of architectural principles rather than a protocol like other web services SOAP • Simple Object Access Protocol • Uses XML as a format to transfer data • Main function is to define the structure of the messages and methods of communication
  • 8. @Nithin_Synapse Let's see what an API does... Imagine a situation of ordering a dish from a restaurant • Customer (Application) is in a Restaurant and checks the Menu for the desired dish. • Then call the Waiter (API) and request that dish. • Then the Waiter checks the availability of the dish in the Kitchen (Server), and will get an update from kitchen informing whether the dish is available or not, the waiter returns to you with the update(Response). Technically, API is a set of rules that allow programs to talk to each other. The developer creates the API on the server and allows the client to talk to it
  • 9. @Nithin_Synapse Request Methods GET Used to retrieve data from a server at the specified resource. For example, say you have an API with a /users endpoint. Making a GET request to that endpoint should return a list of all available users. POST Used to send data to the API server to create or update a resource. The data sent to the server is stored in the request body of the HTTP request. The simplest example is a contact form on a website.
  • 10. @Nithin_Synapse Request Methods PUT Used to send data to the API to create or update a resource. The difference is that PUT requests are idempotent. That is, calling the same PUT request multiple times will always produce the same result. In contrast, calling a POST request repeatedly have side effects of creating the same resource multiple times DELETE Used to delete the resource at the specified URL
  • 11. @Nithin_Synapse Usage If a new user is created with a POST request to /users, and it can be retrieved with a GET request to /users/{{userid}}, user details can be updated using a PUT request, and then making a DELETE request to /users/{{userid}} will completely remove that user
  • 12. @Nithin_Synapse Status Codes 2xx (Success) • 200 OK: Request was successful • 201 Created: Something new was created based on request • 204 No Content: Request success, but no data send back 4xx (Client Error) • 400 Bad Request: Server did not understand the request • 401 Unauthorised: Client must be authorised via login • 403 Forbidden: Client doesn't have permission to access requested document • 404 Not Found: Requested document is not found on the URL given
  • 13. @Nithin_Synapse Status Codes 5xx (Server Errors) • 500 Internal Server Error: Generic Error message meaning that something broken. 3xx (Redirects) • 301 Moved Permanently : Requested document was moved and response contains the URL of new location. • 302 Found: Requested document temporarily moved to a different location.
  • 14. @Nithin_Synapse Authorization and Authentication Authentication is all about proving who you are. Authorization is all about proving what you can do.
  • 19. @Nithin_Synapse API Testing Tips • Understand API requirements • Specify the API output status • Organize API endpoints • Focus on small functional APIs • Leverage automation capability • Choose the right tool • Define verification methods • Create positive and negative tests
  • 20. @Nithin_Synapse Sneak peak into API Security • Broken object level authorization • Broken authentication • Excessive data exposure • Lack of resources and rate limiting • Broken function level authorization • Mass assignment • Security misconfiguration • Injection • Improper assets management • Insufficient logging and monitoring Source OWASP API Security Top 10
  • 21. @Nithin_Synapse Broken object level authorization Source APIsecurity.io Attackers substitute the ID of their own resource in the API call with an ID of a resource belonging to another user. The lack of proper authorization checks allows attackers to access the specified resource.
  • 22. @Nithin_Synapse Broken authentication Source APIsecurity.io Poorly implemented API authentication allows attackers to assume other users’ identities.
  • 23. @Nithin_Synapse Excessive data exposure Source APIsecurity.io The API may expose a lot more data than what the client legitimately needs, relying on the client to do the filtering. If attackers go directly to the API, they have it all.
  • 24. @Nithin_Synapse Lack of resources and rate limiting Source APIsecurity.io The API is not protected against an excessive amount of calls or payload sizes. Attackers can use this for Denial of Service (DoS) and authentication flaws like brute force attacks.
  • 25. @Nithin_Synapse Broken function level authorization Source APIsecurity.io The API relies on the client to use user level or admin level APIs as appropriate. Attackers figure out the “hidden” admin API methods and invoke them directly.
  • 26. @Nithin_Synapse Mass assignment Source APIsecurity.io The API takes data that client provides and stores it without proper filtering for whitelisted properties. Attackers can try to guess object properties or provide additional object properties in their requests, read the documentation, or check out API endpoints for clues where to find the openings to modify properties they are not supposed to on the data objects stored in the backend.
  • 27. @Nithin_Synapse Security misconfiguration Source APIsecurity.io Poor configuration of the API servers allows attackers to exploit them.
  • 28. @Nithin_Synapse Injection Source APIsecurity.io Attackers construct API calls that include SQL, NoSQL, LDAP, OS, or other commands that the API or the backend behind it blindly executes.
  • 29. @Nithin_Synapse Improper assets management Source APIsecurity.io Attackers find non-production versions of the API (for example, staging, testing, beta, or earlier versions) that are not as well protected as the production API, and use those to launch their attacks.
  • 30. @Nithin_Synapse Insufficient logging and monitoring Source APIsecurity.io Lack of proper logging, monitoring, and alerting allows attacks and attackers go unnoticed.
  • 31. @Nithin_Synapse Creating and maintaining automated API tests https://ibb.co/CQVCcxh
  • 32. Have a wonderful relationship with APIs nithin-ss Nithin_Synapse Further Read: https://bit.ly/rest-postman https://apisecurity.io/ THANK YOU! nithin.ss@synapse-qa.com synapse-qa.com