SlideShare a Scribd company logo
API 
An&pa)erns 
…iden&fying, 
and 
avoiding 
them 
Silicon 
Valley 
Code 
Camp 
2014 
#svcc
Manish 
Pandit 
@lobster1234 
mpandit 
at 
neGlix 
dot 
com 
linkedin.com/in/mpandit 
slideshare.net/lobster1234 
@lobster1234
APIs 
A 
means 
for 
soLware 
to 
interact 
with 
other 
soLware. 
@lobster1234
@lobster1234
@lobster1234 
Image 
Credit: 
h)p://en.wikipedia.org/wiki/Internet_of_Things
@lobster1234
REST 
API 
REST 
is 
not 
a 
standard, 
but 
an 
architecture 
@lobster1234
REST 
API 
REST 
is 
not 
a 
standard, 
but 
an 
architecture, 
which 
prefers 
using 
HTTP 
as 
a 
model 
for 
all 
interac0ons. 
HTTP 
is 
a 
standard, 
REST 
is 
a 
conven&on. 
@lobster1234
REST 
!= 
HTTP 
REST 
!= 
SOAP 
@lobster1234
@lobster1234
REST 
API 
Noun 
è 
Resource, 
or 
the 
En&ty 
Verb 
Ac&on 
+ 
è 
Iden0fier 
@lobster1234
Image: 
h)p://www.educa&on.com/study-­‐help/ar&cle/nouns/ 
@lobster1234
Protocol 
May 
or 
may 
not 
be 
standard 
@lobster1234
Protocol 
May 
or 
may 
not 
be 
standard 
Indicates 
an 
agreement 
between 
the 
par&es 
@lobster1234
@lobster1234
Payload 
Format 
(XML, 
JSON, 
Custom 
Text, 
Binary..) 
Transport 
(HTTP, 
Binary 
over 
sockets, 
FTP..) 
@lobster1234
@lobster1234
h)p://www.neGlix.com/header/neGlix_logo.gif 
Or, 
reques0ng 
a 
resource 
from 
the 
server 
by 
giving 
its 
path 
using 
a 
protocol. 
@lobster1234
Every 
request 
deserves 
a 
response. 
@lobster1234
Headers 
describe 
the 
response 
@lobster1234
Headers 
describe 
the 
response 
Status 
Code 
indicates 
the 
success/failure 
@lobster1234
Headers 
describe 
the 
response 
Status 
Code 
indicates 
the 
success/failure 
Body 
contains 
the 
actual 
payload 
@lobster1234
Tell 
the 
server 
what 
to 
do 
via 
ac0ons 
@lobster1234
Ac&ons 
are 
HTTP 
methods, 
which 
map 
nicely 
to 
(most 
of) 
the 
business 
interac&ons 
@lobster1234
Create 
– 
POST 
Read 
– 
GET 
Update 
– 
PUT 
(or 
PATCH) 
Delete 
-­‐ 
DELETE 
HEAD, 
OPTIONS, 
TRACE, 
CONNECT 
@lobster1234
Pa)erns 
@lobster1234
Pa)erns 
Pa)erns 
are 
re-­‐usable 
solu&ons 
to 
commonly 
occurring 
problems. 
@lobster1234
An&pa)erns 
An&pa)erns 
are 
re-­‐usable 
solu&ons 
to 
commonly 
occurring 
problems, 
that 
look 
great 
on 
the 
surface, 
but 
really 
aren’t. 
@lobster1234
API 
An&pa)erns 
Request 
Method 
Response 
Organiza&onal 
@lobster1234
Request 
An&pa)erns 
@lobster1234
Over-­‐using 
Query 
Strings 
@lobster1234
/pets?name=scruffy 
vs. 
/pets/name/scruffy 
@lobster1234
/pets?name=scruffy&zip=94568 
vs. 
/pets/name/scruffy/loca&on/zip/94568 
@lobster1234
Avoid 
query 
strings 
for 
resource 
iden&fica&on 
But 
use 
them 
for 
request 
metadata 
* 
*Except 
for 
search 
@lobster1234
Pagina&on 
Filtering 
Sor&ng 
.. 
@lobster1234
@lobster1234
Query 
Strings 
h)p://some.api.com/movies? 
start=0&count=10&sortBy=name&fields=name, 
cast,releaseDate 
@lobster1234
Allowing 
clients 
to 
scrape 
the 
data 
via 
your 
APIs 
@lobster1234
@lobster1234
Think 
batch 
jobs 
reques&ng 
the 
catalog 
nightly! 
@lobster1234
Request 
metadata 
to 
the 
rescue? 
@lobster1234
….how 
about 
a 
?since=1d 
…or 
?since=UTC 
@lobster1234
Method 
An&pa)erns 
@lobster1234
Using 
Query 
Strings 
to 
overload 
methods 
@lobster1234
/pets?perform=update&name=scruffy&id=24 
@lobster1234
Use 
the 
appropriate 
HTTP 
Method 
to 
represent 
your 
ac&on 
@lobster1234
Using 
POST 
for 
all 
writes 
@lobster1234
GET 
to 
retrieve, 
or 
search 
POST 
to 
create, 
or 
upsert 
PUT 
to 
update 
(or 
be)er 
yet, 
PATCH) 
DELETE 
to 
delete 
@lobster1234
Response 
An&pa)erns 
@lobster1234
Always 
returning 
HTTP 
200 
@lobster1234
@lobster1234
HTTP 
200 
OK 
{ 
“success” 
: 
false 
} 
@lobster1234
HTTP 
200 
OK 
{ 
“error” 
: 
”Person 
jdoe 
not 
found” 
} 
@lobster1234
2xx 
for 
success 
3xx 
for 
redirects/caching 
4xx 
for 
request/client 
errors 
5xx 
for 
server 
errors 
@lobster1234
Some 
Useful 
(and 
not 
so 
common) 
Codes 
Return 
aLer 
a 
delete 
-­‐ 
204 
Failed 
database 
constraint 
-­‐ 
409 
Method 
not 
supported 
-­‐ 
405 
Trying 
to 
ask 
for 
too 
much 
data 
-­‐ 
413 
Valida&on 
Failure 
-­‐ 
418 
@lobster1234
Always 
returning 
a 
401 
for 
auth 
failures
@lobster1234
Auth 
Use 
HTTP 
401 
Unauthorized 
to 
indicate 
that 
the 
client 
needs 
to 
authen&cate 
@lobster1234
Auth 
Use 
HTTP 
403 
Forbidden 
to 
indicate 
that 
the 
client’s 
creden&als 
do 
not 
allow 
access 
to 
the 
requested 
resource 
@lobster1234
401 
vs 
403 
401 
= 
Come 
back 
with 
a 
key 
403 
= 
Your 
key 
does 
not 
work 
for 
this 
lock. 
@lobster1234
Processing 
requests 
synchronously, 
even 
&me 
intensive 
ones 
@lobster1234
Async 
the 
opera&on, 
and 
return 
HTTP 
202 
– 
Accepted 
@lobster1234
@lobster1234
Async 
opera&on’s 
response 
should 
help 
the 
caller. 
{“statusUrl”: 
<some 
URL>} 
@lobster1234
Organiza&onal 
An&pa)erns 
@lobster1234
Not 
differen&a&ng 
between 
en00es 
and 
instances 
@lobster1234
/pets?type=dog&name=big 
vs 
/pets/dogs/name/big 
@lobster1234
Namespace 
your 
resources 
in 
a 
collec&on 
Use 
paths 
and 
iden&fiers 
to 
traverse 
@lobster1234
Using 
id 
in 
the 
resource 
iden&fica&on 
path 
@lobster1234
/pets/id/1234 
vs 
/pets/1234 
@lobster1234
Use 
all 
other 
a)ributes 
in 
the 
path, 
except 
the 
id. 
id 
is 
implied 
@lobster1234
@lobster1234 
Resources 
in 
an 
island
@lobster1234
Every 
en&ty 
or 
a 
resource 
is 
&ed 
to 
others. 
@lobster1234
Every 
en&ty 
or 
a 
resource 
is 
&ed 
to 
others. 
And 
you’re 
stuck 
guessing 
the 
connec&ons! 
@lobster1234
@lobster1234 
We’ll 
just 
return 
the 
IDs!
HATEOAS 
(or 
something 
similar) 
@lobster1234
Read 
code 
to 
figure 
out 
the 
resources 
and 
a)ributes. 
@lobster1234
@lobster1234
Use 
Meta 
pages 
for 
resource 
descrip&on 
/resource/meta 
/collec&on/meta 
@lobster1234
APIs 
are 
not 
discoverable 
@lobster1234
Consider 
a 
documenta&on 
generator 
like 
Swagger, 
IODocs 
@lobster1234
Relying 
on 
cookies 
for 
authen&ca&on 
@lobster1234
@lobster1234
Accept 
cookies 
as 
a 
fallback, 
but 
prefer 
a 
query 
parameter 
or 
HTTP 
request 
header. 
@lobster1234
Storing 
state 
on 
the 
server 
nodes 
@lobster1234
Stateless 
== 
Simple 
@lobster1234
Requests 
either 
modify 
the 
state 
of 
a 
resource, 
or 
read 
it. 
All 
requests 
to 
the 
cluster 
see 
the 
same 
state 
of 
the 
resource 
@lobster1234
Avoid 
state 
as 
much 
as 
possible. 
Maintain 
the 
state 
in 
the 
database. 
If 
you 
need 
to 
store 
transient 
state 
on 
the 
server, 
it’s 
a 
code 
(or 
architecture) 
smell. 
@lobster1234
Versioning 
Using 
301s 
to 
redirect/re&re 
APIs 
Caching 
Using 
HTTP 
headers 
correctly 
Caching 
response 
bodies 
@lobster1234
@lobster1234 
Fin

More Related Content

What's hot

The Google Hacking Database: A Key Resource to Exposing Vulnerabilities
The Google Hacking Database: A Key Resource to Exposing VulnerabilitiesThe Google Hacking Database: A Key Resource to Exposing Vulnerabilities
The Google Hacking Database: A Key Resource to Exposing Vulnerabilities
TechWell
 
Building Beautiful REST APIs in ASP.NET Core
Building Beautiful REST APIs in ASP.NET CoreBuilding Beautiful REST APIs in ASP.NET Core
Building Beautiful REST APIs in ASP.NET Core
Nate Barbettini
 
Enhance Your Google Search
Enhance Your Google SearchEnhance Your Google Search
Enhance Your Google Search
Valentini Mellas
 
Cryptography for Beginners - Sunshine PHP 2018
Cryptography for Beginners - Sunshine PHP 2018Cryptography for Beginners - Sunshine PHP 2018
Cryptography for Beginners - Sunshine PHP 2018
Adam Englander
 
Creating APIs over RDF
Creating APIs over RDFCreating APIs over RDF
Creating APIs over RDFLeigh Dodds
 
Google Search Techniques
Google Search TechniquesGoogle Search Techniques
Google Search Techniques
Duc Chau
 
Kiran karnad rtc2014 ghdb-final
Kiran karnad rtc2014 ghdb-finalKiran karnad rtc2014 ghdb-final
Kiran karnad rtc2014 ghdb-finalRomania Testing
 
Bigdive 2014 - RDF, principles and case studies
Bigdive 2014 - RDF, principles and case studiesBigdive 2014 - RDF, principles and case studies
Bigdive 2014 - RDF, principles and case studiesDiego Valerio Camarda
 
1-04: HTML Elements
1-04: HTML Elements1-04: HTML Elements
1-04: HTML Elementsapnwebdev
 
Agile Descriptions
Agile DescriptionsAgile Descriptions
Agile DescriptionsTony Hammond
 
Hadoop and Neo4j: A Winning Combination for Bioinformatics
Hadoop and Neo4j: A Winning Combination for BioinformaticsHadoop and Neo4j: A Winning Combination for Bioinformatics
Hadoop and Neo4j: A Winning Combination for Bioinformatics
osintegrators
 
Google search techniques
Google search techniquesGoogle search techniques
Google search techniques
Nirav Ranpara
 
Chris Gutteridge: RDF Crash Course
Chris Gutteridge: RDF Crash CourseChris Gutteridge: RDF Crash Course
Chris Gutteridge: RDF Crash Course
devxs
 
Building Smarter Search Applications Using Built-In Knowledge Graphs and Quer...
Building Smarter Search Applications Using Built-In Knowledge Graphs and Quer...Building Smarter Search Applications Using Built-In Knowledge Graphs and Quer...
Building Smarter Search Applications Using Built-In Knowledge Graphs and Quer...
Lucidworks
 
Googlesearchtechniques 090402135045-phpapp01
Googlesearchtechniques 090402135045-phpapp01Googlesearchtechniques 090402135045-phpapp01
Googlesearchtechniques 090402135045-phpapp01Charles Erwin
 
Google searching techniques
Google searching techniquesGoogle searching techniques
Google searching techniques
abbas mohd
 

What's hot (18)

The Google Hacking Database: A Key Resource to Exposing Vulnerabilities
The Google Hacking Database: A Key Resource to Exposing VulnerabilitiesThe Google Hacking Database: A Key Resource to Exposing Vulnerabilities
The Google Hacking Database: A Key Resource to Exposing Vulnerabilities
 
Building Beautiful REST APIs in ASP.NET Core
Building Beautiful REST APIs in ASP.NET CoreBuilding Beautiful REST APIs in ASP.NET Core
Building Beautiful REST APIs in ASP.NET Core
 
Enhance Your Google Search
Enhance Your Google SearchEnhance Your Google Search
Enhance Your Google Search
 
Cryptography for Beginners - Sunshine PHP 2018
Cryptography for Beginners - Sunshine PHP 2018Cryptography for Beginners - Sunshine PHP 2018
Cryptography for Beginners - Sunshine PHP 2018
 
Creating APIs over RDF
Creating APIs over RDFCreating APIs over RDF
Creating APIs over RDF
 
Google Search Techniques
Google Search TechniquesGoogle Search Techniques
Google Search Techniques
 
Kiran karnad rtc2014 ghdb-final
Kiran karnad rtc2014 ghdb-finalKiran karnad rtc2014 ghdb-final
Kiran karnad rtc2014 ghdb-final
 
Bigdive 2014 - RDF, principles and case studies
Bigdive 2014 - RDF, principles and case studiesBigdive 2014 - RDF, principles and case studies
Bigdive 2014 - RDF, principles and case studies
 
1-04: HTML Elements
1-04: HTML Elements1-04: HTML Elements
1-04: HTML Elements
 
Agile Descriptions
Agile DescriptionsAgile Descriptions
Agile Descriptions
 
Hadoop and Neo4j: A Winning Combination for Bioinformatics
Hadoop and Neo4j: A Winning Combination for BioinformaticsHadoop and Neo4j: A Winning Combination for Bioinformatics
Hadoop and Neo4j: A Winning Combination for Bioinformatics
 
Google search techniques
Google search techniquesGoogle search techniques
Google search techniques
 
Google
GoogleGoogle
Google
 
Chris Gutteridge: RDF Crash Course
Chris Gutteridge: RDF Crash CourseChris Gutteridge: RDF Crash Course
Chris Gutteridge: RDF Crash Course
 
Building Smarter Search Applications Using Built-In Knowledge Graphs and Quer...
Building Smarter Search Applications Using Built-In Knowledge Graphs and Quer...Building Smarter Search Applications Using Built-In Knowledge Graphs and Quer...
Building Smarter Search Applications Using Built-In Knowledge Graphs and Quer...
 
Googlesearchtechniques 090402135045-phpapp01
Googlesearchtechniques 090402135045-phpapp01Googlesearchtechniques 090402135045-phpapp01
Googlesearchtechniques 090402135045-phpapp01
 
Google search tips
Google search tipsGoogle search tips
Google search tips
 
Google searching techniques
Google searching techniquesGoogle searching techniques
Google searching techniques
 

Viewers also liked

API Design Antipatterns - APICon SF
API Design Antipatterns - APICon SFAPI Design Antipatterns - APICon SF
API Design Antipatterns - APICon SF
Manish Pandit
 
AWS Primer and Quickstart
AWS Primer and QuickstartAWS Primer and Quickstart
AWS Primer and Quickstart
Manish Pandit
 
Actividad 1 (2)
Actividad 1 (2)Actividad 1 (2)
Actividad 1 (2)FADISMARR
 
Future Agenda Future Of Choice
Future Agenda   Future Of ChoiceFuture Agenda   Future Of Choice
Future Agenda Future Of Choice
Future Agenda
 
Future Agenda Future Of Transport
Future Agenda   Future Of TransportFuture Agenda   Future Of Transport
Future Agenda Future Of Transport
Future Agenda
 
Fonts N Tht
Fonts N ThtFonts N Tht
Fonts N Thtbenjo7
 
Pervasive And Personnal Learning
Pervasive And Personnal LearningPervasive And Personnal Learning
Pervasive And Personnal Learning
Yvan Peter
 
Fonts N Tht
Fonts N ThtFonts N Tht
Fonts N Thtbenjo7
 
Research Into Our Potential Target Audience
Research Into Our Potential Target AudienceResearch Into Our Potential Target Audience
Research Into Our Potential Target Audience3246
 
Hr 2.0 Executive Summary
Hr 2.0 Executive SummaryHr 2.0 Executive Summary
Hr 2.0 Executive Summary
Talentys
 
設計英文
設計英文設計英文
設計英文h6533n
 
Tom Gorham Class Content
Tom Gorham Class ContentTom Gorham Class Content
Tom Gorham Class Contentaahawkins
 
Where Media Meets Mobile May 2010
Where Media Meets Mobile   May 2010Where Media Meets Mobile   May 2010
Where Media Meets Mobile May 2010
Hugh Griffiths
 
Θέματα λίγο διαφορετικά δοσμένα Φυσικη χημεια α λυκειου
Θέματα λίγο διαφορετικά δοσμένα Φυσικη χημεια α λυκειουΘέματα λίγο διαφορετικά δοσμένα Φυσικη χημεια α λυκειου
Θέματα λίγο διαφορετικά δοσμένα Φυσικη χημεια α λυκειουChristos Gotzaridis
 
πώςθα δημιουργήσετε ένα σενάριο διδασκαλίας
πώςθα δημιουργήσετε ένα  σενάριο διδασκαλίαςπώςθα δημιουργήσετε ένα  σενάριο διδασκαλίας
πώςθα δημιουργήσετε ένα σενάριο διδασκαλίαςChristos Gotzaridis
 
Powerpoint Assignment
Powerpoint AssignmentPowerpoint Assignment
Powerpoint Assignmentshoptiludrop
 
Casp Webcast Intro
Casp Webcast IntroCasp Webcast Intro
Casp Webcast Introjunesteward
 

Viewers also liked (20)

API Design Antipatterns - APICon SF
API Design Antipatterns - APICon SFAPI Design Antipatterns - APICon SF
API Design Antipatterns - APICon SF
 
AWS Primer and Quickstart
AWS Primer and QuickstartAWS Primer and Quickstart
AWS Primer and Quickstart
 
Subwayseries
SubwayseriesSubwayseries
Subwayseries
 
Actividad 1 (2)
Actividad 1 (2)Actividad 1 (2)
Actividad 1 (2)
 
Future Agenda Future Of Choice
Future Agenda   Future Of ChoiceFuture Agenda   Future Of Choice
Future Agenda Future Of Choice
 
Future Agenda Future Of Transport
Future Agenda   Future Of TransportFuture Agenda   Future Of Transport
Future Agenda Future Of Transport
 
Acacia Research and Learning Forum - Day 1: Introduction
Acacia Research and Learning Forum - Day 1: IntroductionAcacia Research and Learning Forum - Day 1: Introduction
Acacia Research and Learning Forum - Day 1: Introduction
 
Fonts N Tht
Fonts N ThtFonts N Tht
Fonts N Tht
 
Pervasive And Personnal Learning
Pervasive And Personnal LearningPervasive And Personnal Learning
Pervasive And Personnal Learning
 
Fonts N Tht
Fonts N ThtFonts N Tht
Fonts N Tht
 
Research Into Our Potential Target Audience
Research Into Our Potential Target AudienceResearch Into Our Potential Target Audience
Research Into Our Potential Target Audience
 
Hr 2.0 Executive Summary
Hr 2.0 Executive SummaryHr 2.0 Executive Summary
Hr 2.0 Executive Summary
 
Lecture 2
Lecture 2Lecture 2
Lecture 2
 
設計英文
設計英文設計英文
設計英文
 
Tom Gorham Class Content
Tom Gorham Class ContentTom Gorham Class Content
Tom Gorham Class Content
 
Where Media Meets Mobile May 2010
Where Media Meets Mobile   May 2010Where Media Meets Mobile   May 2010
Where Media Meets Mobile May 2010
 
Θέματα λίγο διαφορετικά δοσμένα Φυσικη χημεια α λυκειου
Θέματα λίγο διαφορετικά δοσμένα Φυσικη χημεια α λυκειουΘέματα λίγο διαφορετικά δοσμένα Φυσικη χημεια α λυκειου
Θέματα λίγο διαφορετικά δοσμένα Φυσικη χημεια α λυκειου
 
πώςθα δημιουργήσετε ένα σενάριο διδασκαλίας
πώςθα δημιουργήσετε ένα  σενάριο διδασκαλίαςπώςθα δημιουργήσετε ένα  σενάριο διδασκαλίας
πώςθα δημιουργήσετε ένα σενάριο διδασκαλίας
 
Powerpoint Assignment
Powerpoint AssignmentPowerpoint Assignment
Powerpoint Assignment
 
Casp Webcast Intro
Casp Webcast IntroCasp Webcast Intro
Casp Webcast Intro
 

Similar to Silicon Valley 2014 - API Antipatterns

Scalabay - API Design Antipatterns
Scalabay - API Design AntipatternsScalabay - API Design Antipatterns
Scalabay - API Design Antipatterns
Manish Pandit
 
API Analytics with Redis and Bigquery. NoSQLmatters Cologne '14 edition. Javi...
API Analytics with Redis and Bigquery. NoSQLmatters Cologne '14 edition. Javi...API Analytics with Redis and Bigquery. NoSQLmatters Cologne '14 edition. Javi...
API Analytics with Redis and Bigquery. NoSQLmatters Cologne '14 edition. Javi...
javier ramirez
 
RefCard RESTful API Design
RefCard RESTful API DesignRefCard RESTful API Design
RefCard RESTful API Design
OCTO Technology
 
REST in ( a mobile ) peace @ WHYMCA 05-21-2011
REST in ( a mobile ) peace @ WHYMCA 05-21-2011REST in ( a mobile ) peace @ WHYMCA 05-21-2011
REST in ( a mobile ) peace @ WHYMCA 05-21-2011
Alessandro Nadalin
 
BDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
BDD to the Bone: Using Behave and Selenium to Test-Drive Web ApplicationsBDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
BDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
Patrick Viafore
 
REST in peace @ IPC 2012 in Mainz
REST in peace @ IPC 2012 in MainzREST in peace @ IPC 2012 in Mainz
REST in peace @ IPC 2012 in Mainz
Alessandro Nadalin
 
Learning How to Shape and Configure an OData Service for High Performing Web ...
Learning How to Shape and Configure an OData Service for High Performing Web ...Learning How to Shape and Configure an OData Service for High Performing Web ...
Learning How to Shape and Configure an OData Service for High Performing Web ...
Woodruff Solutions LLC
 
REST Introduction (PHP London)
REST Introduction (PHP London)REST Introduction (PHP London)
REST Introduction (PHP London)
Paul James
 
HTTP Basics Demo
HTTP Basics DemoHTTP Basics Demo
HTTP Basics Demo
InMobi Technology
 
Secureyourrestapi 140530183606-phpapp02
Secureyourrestapi 140530183606-phpapp02Secureyourrestapi 140530183606-phpapp02
Secureyourrestapi 140530183606-phpapp02
Subhajit Bhuiya
 
Secure Your REST API (The Right Way)
Secure Your REST API (The Right Way)Secure Your REST API (The Right Way)
Secure Your REST API (The Right Way)
Stormpath
 
The never-ending REST API design debate
The never-ending REST API design debateThe never-ending REST API design debate
The never-ending REST API design debate
Restlet
 
Learning How to Shape and Configure an OData Feed for High Performing Web Sit...
Learning How to Shape and Configure an OData Feed for High Performing Web Sit...Learning How to Shape and Configure an OData Feed for High Performing Web Sit...
Learning How to Shape and Configure an OData Feed for High Performing Web Sit...
Woodruff Solutions LLC
 
Take a Groovy REST
Take a Groovy RESTTake a Groovy REST
Take a Groovy REST
Restlet
 
Implementing Authorization
Implementing AuthorizationImplementing Authorization
Implementing Authorization
Torin Sandall
 
Understanding Identity in the World of Web APIs – Ronnie Mitra, API Architec...
Understanding Identity in the World of Web APIs – Ronnie Mitra,  API Architec...Understanding Identity in the World of Web APIs – Ronnie Mitra,  API Architec...
Understanding Identity in the World of Web APIs – Ronnie Mitra, API Architec...
CA API Management
 
Cloudera Impala
Cloudera ImpalaCloudera Impala
Cloudera Impala
Alex Moundalexis
 
Services web RESTful
Services web RESTfulServices web RESTful
Services web RESTfulgoldoraf
 

Similar to Silicon Valley 2014 - API Antipatterns (20)

Scalabay - API Design Antipatterns
Scalabay - API Design AntipatternsScalabay - API Design Antipatterns
Scalabay - API Design Antipatterns
 
API Analytics with Redis and Bigquery. NoSQLmatters Cologne '14 edition. Javi...
API Analytics with Redis and Bigquery. NoSQLmatters Cologne '14 edition. Javi...API Analytics with Redis and Bigquery. NoSQLmatters Cologne '14 edition. Javi...
API Analytics with Redis and Bigquery. NoSQLmatters Cologne '14 edition. Javi...
 
Web Scraping with PHP
Web Scraping with PHPWeb Scraping with PHP
Web Scraping with PHP
 
RefCard RESTful API Design
RefCard RESTful API DesignRefCard RESTful API Design
RefCard RESTful API Design
 
REST in ( a mobile ) peace @ WHYMCA 05-21-2011
REST in ( a mobile ) peace @ WHYMCA 05-21-2011REST in ( a mobile ) peace @ WHYMCA 05-21-2011
REST in ( a mobile ) peace @ WHYMCA 05-21-2011
 
BDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
BDD to the Bone: Using Behave and Selenium to Test-Drive Web ApplicationsBDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
BDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
 
REST in peace @ IPC 2012 in Mainz
REST in peace @ IPC 2012 in MainzREST in peace @ IPC 2012 in Mainz
REST in peace @ IPC 2012 in Mainz
 
Learning How to Shape and Configure an OData Service for High Performing Web ...
Learning How to Shape and Configure an OData Service for High Performing Web ...Learning How to Shape and Configure an OData Service for High Performing Web ...
Learning How to Shape and Configure an OData Service for High Performing Web ...
 
Cqrs api v2
Cqrs api v2Cqrs api v2
Cqrs api v2
 
REST Introduction (PHP London)
REST Introduction (PHP London)REST Introduction (PHP London)
REST Introduction (PHP London)
 
HTTP Basics Demo
HTTP Basics DemoHTTP Basics Demo
HTTP Basics Demo
 
Secureyourrestapi 140530183606-phpapp02
Secureyourrestapi 140530183606-phpapp02Secureyourrestapi 140530183606-phpapp02
Secureyourrestapi 140530183606-phpapp02
 
Secure Your REST API (The Right Way)
Secure Your REST API (The Right Way)Secure Your REST API (The Right Way)
Secure Your REST API (The Right Way)
 
The never-ending REST API design debate
The never-ending REST API design debateThe never-ending REST API design debate
The never-ending REST API design debate
 
Learning How to Shape and Configure an OData Feed for High Performing Web Sit...
Learning How to Shape and Configure an OData Feed for High Performing Web Sit...Learning How to Shape and Configure an OData Feed for High Performing Web Sit...
Learning How to Shape and Configure an OData Feed for High Performing Web Sit...
 
Take a Groovy REST
Take a Groovy RESTTake a Groovy REST
Take a Groovy REST
 
Implementing Authorization
Implementing AuthorizationImplementing Authorization
Implementing Authorization
 
Understanding Identity in the World of Web APIs – Ronnie Mitra, API Architec...
Understanding Identity in the World of Web APIs – Ronnie Mitra,  API Architec...Understanding Identity in the World of Web APIs – Ronnie Mitra,  API Architec...
Understanding Identity in the World of Web APIs – Ronnie Mitra, API Architec...
 
Cloudera Impala
Cloudera ImpalaCloudera Impala
Cloudera Impala
 
Services web RESTful
Services web RESTfulServices web RESTful
Services web RESTful
 

More from Manish Pandit

Disaster recovery - What, Why, and How
Disaster recovery - What, Why, and HowDisaster recovery - What, Why, and How
Disaster recovery - What, Why, and How
Manish Pandit
 
Serverless Architectures on AWS in practice - OSCON 2018
Serverless Architectures on AWS in practice - OSCON 2018Serverless Architectures on AWS in practice - OSCON 2018
Serverless Architectures on AWS in practice - OSCON 2018
Manish Pandit
 
Disaster Recovery and Reliability
Disaster Recovery and ReliabilityDisaster Recovery and Reliability
Disaster Recovery and Reliability
Manish Pandit
 
OAuth2 primer
OAuth2 primerOAuth2 primer
OAuth2 primer
Manish Pandit
 
Immutable AWS Deployments with Packer and Jenkins
Immutable AWS Deployments with Packer and JenkinsImmutable AWS Deployments with Packer and Jenkins
Immutable AWS Deployments with Packer and Jenkins
Manish Pandit
 
AWS Lambda with Serverless Framework and Java
AWS Lambda with Serverless Framework and JavaAWS Lambda with Serverless Framework and Java
AWS Lambda with Serverless Framework and Java
Manish Pandit
 
Securing your APIs with OAuth, OpenID, and OpenID Connect
Securing your APIs with OAuth, OpenID, and OpenID ConnectSecuring your APIs with OAuth, OpenID, and OpenID Connect
Securing your APIs with OAuth, OpenID, and OpenID Connect
Manish Pandit
 
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at Netflix
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at NetflixOSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at Netflix
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at Netflix
Manish Pandit
 
Motivation : it Matters
Motivation : it MattersMotivation : it Matters
Motivation : it Matters
Manish Pandit
 
Building Apis in Scala with Playframework2
Building Apis in Scala with Playframework2Building Apis in Scala with Playframework2
Building Apis in Scala with Playframework2
Manish Pandit
 
Scala at Netflix
Scala at NetflixScala at Netflix
Scala at Netflix
Manish Pandit
 
Introducing Scala to your Ruby/Java Shop : My experiences at IGN
Introducing Scala to your Ruby/Java Shop : My experiences at IGNIntroducing Scala to your Ruby/Java Shop : My experiences at IGN
Introducing Scala to your Ruby/Java Shop : My experiences at IGN
Manish Pandit
 
Evolving IGN’s New APIs with Scala
 Evolving IGN’s New APIs with Scala Evolving IGN’s New APIs with Scala
Evolving IGN’s New APIs with Scala
Manish Pandit
 
IGN's V3 API
IGN's V3 APIIGN's V3 API
IGN's V3 API
Manish Pandit
 
Java and the JVM
Java and the JVMJava and the JVM
Java and the JVM
Manish Pandit
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
Manish Pandit
 
Silicon Valley Code Camp 2011: Play! as you REST
Silicon Valley Code Camp 2011: Play! as you RESTSilicon Valley Code Camp 2011: Play! as you REST
Silicon Valley Code Camp 2011: Play! as you REST
Manish Pandit
 
Silicon Valley Code Camp: 2011 Introduction to MongoDB
Silicon Valley Code Camp: 2011 Introduction to MongoDBSilicon Valley Code Camp: 2011 Introduction to MongoDB
Silicon Valley Code Camp: 2011 Introduction to MongoDB
Manish Pandit
 
NoSQLCamp : MongoDB at IGN
NoSQLCamp : MongoDB at IGNNoSQLCamp : MongoDB at IGN
NoSQLCamp : MongoDB at IGN
Manish Pandit
 
MongoSF 2011 - Using MongoDB for IGN's Social Platform
MongoSF 2011 - Using MongoDB for IGN's Social PlatformMongoSF 2011 - Using MongoDB for IGN's Social Platform
MongoSF 2011 - Using MongoDB for IGN's Social Platform
Manish Pandit
 

More from Manish Pandit (20)

Disaster recovery - What, Why, and How
Disaster recovery - What, Why, and HowDisaster recovery - What, Why, and How
Disaster recovery - What, Why, and How
 
Serverless Architectures on AWS in practice - OSCON 2018
Serverless Architectures on AWS in practice - OSCON 2018Serverless Architectures on AWS in practice - OSCON 2018
Serverless Architectures on AWS in practice - OSCON 2018
 
Disaster Recovery and Reliability
Disaster Recovery and ReliabilityDisaster Recovery and Reliability
Disaster Recovery and Reliability
 
OAuth2 primer
OAuth2 primerOAuth2 primer
OAuth2 primer
 
Immutable AWS Deployments with Packer and Jenkins
Immutable AWS Deployments with Packer and JenkinsImmutable AWS Deployments with Packer and Jenkins
Immutable AWS Deployments with Packer and Jenkins
 
AWS Lambda with Serverless Framework and Java
AWS Lambda with Serverless Framework and JavaAWS Lambda with Serverless Framework and Java
AWS Lambda with Serverless Framework and Java
 
Securing your APIs with OAuth, OpenID, and OpenID Connect
Securing your APIs with OAuth, OpenID, and OpenID ConnectSecuring your APIs with OAuth, OpenID, and OpenID Connect
Securing your APIs with OAuth, OpenID, and OpenID Connect
 
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at Netflix
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at NetflixOSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at Netflix
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at Netflix
 
Motivation : it Matters
Motivation : it MattersMotivation : it Matters
Motivation : it Matters
 
Building Apis in Scala with Playframework2
Building Apis in Scala with Playframework2Building Apis in Scala with Playframework2
Building Apis in Scala with Playframework2
 
Scala at Netflix
Scala at NetflixScala at Netflix
Scala at Netflix
 
Introducing Scala to your Ruby/Java Shop : My experiences at IGN
Introducing Scala to your Ruby/Java Shop : My experiences at IGNIntroducing Scala to your Ruby/Java Shop : My experiences at IGN
Introducing Scala to your Ruby/Java Shop : My experiences at IGN
 
Evolving IGN’s New APIs with Scala
 Evolving IGN’s New APIs with Scala Evolving IGN’s New APIs with Scala
Evolving IGN’s New APIs with Scala
 
IGN's V3 API
IGN's V3 APIIGN's V3 API
IGN's V3 API
 
Java and the JVM
Java and the JVMJava and the JVM
Java and the JVM
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
 
Silicon Valley Code Camp 2011: Play! as you REST
Silicon Valley Code Camp 2011: Play! as you RESTSilicon Valley Code Camp 2011: Play! as you REST
Silicon Valley Code Camp 2011: Play! as you REST
 
Silicon Valley Code Camp: 2011 Introduction to MongoDB
Silicon Valley Code Camp: 2011 Introduction to MongoDBSilicon Valley Code Camp: 2011 Introduction to MongoDB
Silicon Valley Code Camp: 2011 Introduction to MongoDB
 
NoSQLCamp : MongoDB at IGN
NoSQLCamp : MongoDB at IGNNoSQLCamp : MongoDB at IGN
NoSQLCamp : MongoDB at IGN
 
MongoSF 2011 - Using MongoDB for IGN's Social Platform
MongoSF 2011 - Using MongoDB for IGN's Social PlatformMongoSF 2011 - Using MongoDB for IGN's Social Platform
MongoSF 2011 - Using MongoDB for IGN's Social Platform
 

Recently uploaded

Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
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
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
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
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
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
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 

Recently uploaded (20)

Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
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
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
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...
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
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
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 

Silicon Valley 2014 - API Antipatterns