SlideShare a Scribd company logo
1 of 95
Download to read offline
API 
An&pa)erns 
…iden&fying, 
and 
avoiding 
them 
Manish Pandit 
@lobster1234
Manish 
Pandit 
@lobster1234 
mpandit 
at 
neAlix 
dot 
com 
linkedin.com/in/mpandit 
slideshare.net/lobster1234 
@lobster1234
APIs 
A 
means 
for 
soGware 
to 
interact 
with 
other 
soGware. 
@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 
uses 
HTTP 
as 
a 
model 
for 
all 
interac.ons. 
If 
HTTP 
is 
a 
standard, 
REST 
is 
a 
conven&on. 
@lobster1234
@lobster1234
REST 
API 
Noun 
è 
Resource, 
or 
the 
En&ty 
Verb 
Ac&on 
+ 
è 
Iden.fier 
@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.neAlix.com/header/neAlix_logo.gif 
Or, 
reques.ng 
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 
ac.ons 
@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
Common 
Scenarios 
Gebng 
data 
from 
the 
server 
@lobster1234
Common 
Scenarios 
Gebng 
data 
from 
the 
server 
Sending 
data 
to 
the 
server 
@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
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 
verbs 
@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
Using 
HTTP 
PUT 
or 
POST 
to 
set 
a 
value 
to 
null 
@lobster1234
Updates 
vs. 
Deletes 
Everything 
works 
when 
there 
is 
data, 
but 
what 
when 
there 
is 
no 
data..? 
@lobster1234
Use 
HTTP 
DELETE 
to 
set 
a 
value 
to 
null 
Remember, 
we 
have 
a 
path 
to 
not 
just 
the 
resource, 
but 
also 
it’s 
a)ributes 
@lobster1234
DELETE 
/pets/<id>/collartag 
@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 
aGer 
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 
en..es 
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 VulnerabilitiesTechWell
 
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 CoreNate Barbettini
 
Enhance Your Google Search
Enhance Your Google SearchEnhance Your Google Search
Enhance Your Google SearchValentini Mellas
 
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 TechniquesDuc Chau
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to ElasticsearchHosang Jeon
 
Kiran karnad rtc2014 ghdb-final
Kiran karnad rtc2014 ghdb-finalKiran karnad rtc2014 ghdb-final
Kiran karnad rtc2014 ghdb-finalRomania Testing
 
Demystifying Apache Kafka, once and for all | Jonathan Santilli, Snyk
Demystifying Apache Kafka, once and for all | Jonathan Santilli, SnykDemystifying Apache Kafka, once and for all | Jonathan Santilli, Snyk
Demystifying Apache Kafka, once and for all | Jonathan Santilli, SnykHostedbyConfluent
 
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
 
Google search techniques
Google search techniquesGoogle search techniques
Google search techniquesNirav Ranpara
 
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
 
Chris Gutteridge: RDF Crash Course
Chris Gutteridge: RDF Crash CourseChris Gutteridge: RDF Crash Course
Chris Gutteridge: RDF Crash Coursedevxs
 
Googlesearchtechniques 090402135045-phpapp01
Googlesearchtechniques 090402135045-phpapp01Googlesearchtechniques 090402135045-phpapp01
Googlesearchtechniques 090402135045-phpapp01Charles Erwin
 
Google searching techniques
Google searching techniquesGoogle searching techniques
Google searching techniquesabbas 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
 
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
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
 
Kiran karnad rtc2014 ghdb-final
Kiran karnad rtc2014 ghdb-finalKiran karnad rtc2014 ghdb-final
Kiran karnad rtc2014 ghdb-final
 
Demystifying Apache Kafka, once and for all | Jonathan Santilli, Snyk
Demystifying Apache Kafka, once and for all | Jonathan Santilli, SnykDemystifying Apache Kafka, once and for all | Jonathan Santilli, Snyk
Demystifying Apache Kafka, once and for all | Jonathan Santilli, Snyk
 
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
 
Google search techniques
Google search techniquesGoogle search techniques
Google search techniques
 
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...
 
Chris Gutteridge: RDF Crash Course
Chris Gutteridge: RDF Crash CourseChris Gutteridge: RDF Crash Course
Chris Gutteridge: RDF Crash Course
 
Google
GoogleGoogle
Google
 
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

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 NetflixManish Pandit
 
Fonts N Tht
Fonts N ThtFonts N Tht
Fonts N Thtbenjo7
 
Funcionlinealyafin
FuncionlinealyafinFuncionlinealyafin
FuncionlinealyafinRodolfo A
 
Activities Done
Activities DoneActivities Done
Activities DoneIaaC
 
Speedinterviewing Sept2009
Speedinterviewing Sept2009Speedinterviewing Sept2009
Speedinterviewing Sept2009Cindy Edwards
 
Προτάσεις για τη διδασκαλία ΠΕ4 γυμνασίου Γενάρης 12
Προτάσεις για τη διδασκαλία ΠΕ4 γυμνασίου Γενάρης 12Προτάσεις για τη διδασκαλία ΠΕ4 γυμνασίου Γενάρης 12
Προτάσεις για τη διδασκαλία ΠΕ4 γυμνασίου Γενάρης 12Christos Gotzaridis
 
Clas.Cruz09
Clas.Cruz09Clas.Cruz09
Clas.Cruz09JOAQUIN
 
Jointure Naturelle3
Jointure Naturelle3Jointure Naturelle3
Jointure Naturelle3ADB2
 
20150901 Mapping Yorkshire
20150901 Mapping Yorkshire20150901 Mapping Yorkshire
20150901 Mapping Yorkshiredbyhundred
 
Jason's timeline
Jason's timelineJason's timeline
Jason's timelinejlee16
 
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 MongoDBManish Pandit
 
How To
How ToHow To
How ToAmy
 
13112282 Aig Risk Bankruptcy Report
13112282 Aig Risk Bankruptcy Report13112282 Aig Risk Bankruptcy Report
13112282 Aig Risk Bankruptcy Reportjubin6025
 
Research Into Our Potential Target Audience
Research Into Our Potential Target AudienceResearch Into Our Potential Target Audience
Research Into Our Potential Target Audience3246
 
Pervasive And Personnal Learning
Pervasive And Personnal LearningPervasive And Personnal Learning
Pervasive And Personnal LearningYvan Peter
 
Tom Gorham Class Content
Tom Gorham Class ContentTom Gorham Class Content
Tom Gorham Class Contentaahawkins
 

Viewers also liked (20)

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
 
Fonts N Tht
Fonts N ThtFonts N Tht
Fonts N Tht
 
Funcionlinealyafin
FuncionlinealyafinFuncionlinealyafin
Funcionlinealyafin
 
Activities Done
Activities DoneActivities Done
Activities Done
 
Speedinterviewing Sept2009
Speedinterviewing Sept2009Speedinterviewing Sept2009
Speedinterviewing Sept2009
 
Προτάσεις για τη διδασκαλία ΠΕ4 γυμνασίου Γενάρης 12
Προτάσεις για τη διδασκαλία ΠΕ4 γυμνασίου Γενάρης 12Προτάσεις για τη διδασκαλία ΠΕ4 γυμνασίου Γενάρης 12
Προτάσεις για τη διδασκαλία ΠΕ4 γυμνασίου Γενάρης 12
 
Clas.Cruz09
Clas.Cruz09Clas.Cruz09
Clas.Cruz09
 
Jointure Naturelle3
Jointure Naturelle3Jointure Naturelle3
Jointure Naturelle3
 
20150901 Mapping Yorkshire
20150901 Mapping Yorkshire20150901 Mapping Yorkshire
20150901 Mapping Yorkshire
 
It eigo 20101029
It eigo 20101029It eigo 20101029
It eigo 20101029
 
Jason's timeline
Jason's timelineJason's timeline
Jason's timeline
 
Makro Sunum2
Makro Sunum2Makro Sunum2
Makro Sunum2
 
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
 
El pastor
El pastorEl pastor
El pastor
 
How To
How ToHow To
How To
 
Small Group Makeup Workshops in Tauranga
Small Group Makeup Workshops in TaurangaSmall Group Makeup Workshops in Tauranga
Small Group Makeup Workshops in Tauranga
 
13112282 Aig Risk Bankruptcy Report
13112282 Aig Risk Bankruptcy Report13112282 Aig Risk Bankruptcy Report
13112282 Aig Risk Bankruptcy Report
 
Research Into Our Potential Target Audience
Research Into Our Potential Target AudienceResearch Into Our Potential Target Audience
Research Into Our Potential Target Audience
 
Pervasive And Personnal Learning
Pervasive And Personnal LearningPervasive And Personnal Learning
Pervasive And Personnal Learning
 
Tom Gorham Class Content
Tom Gorham Class ContentTom Gorham Class Content
Tom Gorham Class Content
 

Similar to Scalabay - API Design Antipatterns

Silicon Valley 2014 - API Antipatterns
Silicon Valley 2014 - API AntipatternsSilicon Valley 2014 - API Antipatterns
Silicon Valley 2014 - API AntipatternsManish Pandit
 
API Design Antipatterns - APICon SF
API Design Antipatterns - APICon SFAPI Design Antipatterns - APICon SF
API Design Antipatterns - APICon SFManish 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
 
Django O/R Mapper
Django O/R MapperDjango O/R Mapper
Django O/R MapperIan Lewis
 
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 ApplicationsPatrick Viafore
 
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
 
Building Hypermedia APIs in JavaScript
Building Hypermedia APIs in JavaScriptBuilding Hypermedia APIs in JavaScript
Building Hypermedia APIs in JavaScript3scale
 
Subj3ct - Oxford Geek Night
Subj3ct - Oxford Geek NightSubj3ct - Oxford Geek Night
Subj3ct - Oxford Geek NightNetworkedPlanet
 
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
 
The Power of Open Data
The Power of Open DataThe Power of Open Data
The Power of Open DataPhil Windley
 
Experiments in Data Portability
Experiments in Data PortabilityExperiments in Data Portability
Experiments in Data PortabilityGlenn Jones
 
JoomlaDay Conference_September 2023 PDF.pdf
JoomlaDay Conference_September 2023 PDF.pdfJoomlaDay Conference_September 2023 PDF.pdf
JoomlaDay Conference_September 2023 PDF.pdfOliver Brett
 
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-2011Alessandro Nadalin
 
Services web RESTful
Services web RESTfulServices web RESTful
Services web RESTfulgoldoraf
 
Semantic Web Applications
Semantic Web ApplicationsSemantic Web Applications
Semantic Web ApplicationsJulian Higman
 
Let's write secure Drupal code! DUG Belgium - 08/08/2019
Let's write secure Drupal code! DUG Belgium - 08/08/2019Let's write secure Drupal code! DUG Belgium - 08/08/2019
Let's write secure Drupal code! DUG Belgium - 08/08/2019Balázs Tatár
 
REST Introduction (PHP London)
REST Introduction (PHP London)REST Introduction (PHP London)
REST Introduction (PHP London)Paul James
 
RefCard RESTful API Design
RefCard RESTful API DesignRefCard RESTful API Design
RefCard RESTful API DesignOCTO Technology
 

Similar to Scalabay - API Design Antipatterns (20)

Silicon Valley 2014 - API Antipatterns
Silicon Valley 2014 - API AntipatternsSilicon Valley 2014 - API Antipatterns
Silicon Valley 2014 - API Antipatterns
 
API Design Antipatterns - APICon SF
API Design Antipatterns - APICon SFAPI Design Antipatterns - APICon SF
API Design Antipatterns - APICon SF
 
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
 
Django O/R Mapper
Django O/R MapperDjango O/R Mapper
Django O/R Mapper
 
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
 
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...
 
Building Hypermedia APIs in JavaScript
Building Hypermedia APIs in JavaScriptBuilding Hypermedia APIs in JavaScript
Building Hypermedia APIs in JavaScript
 
Subj3ct - Oxford Geek Night
Subj3ct - Oxford Geek NightSubj3ct - Oxford Geek Night
Subj3ct - Oxford Geek Night
 
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 ...
 
Cloudera Impala
Cloudera ImpalaCloudera Impala
Cloudera Impala
 
The Power of Open Data
The Power of Open DataThe Power of Open Data
The Power of Open Data
 
Experiments in Data Portability
Experiments in Data PortabilityExperiments in Data Portability
Experiments in Data Portability
 
JoomlaDay Conference_September 2023 PDF.pdf
JoomlaDay Conference_September 2023 PDF.pdfJoomlaDay Conference_September 2023 PDF.pdf
JoomlaDay Conference_September 2023 PDF.pdf
 
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
 
Services web RESTful
Services web RESTfulServices web RESTful
Services web RESTful
 
Semantic Web Applications
Semantic Web ApplicationsSemantic Web Applications
Semantic Web Applications
 
Let's write secure Drupal code! DUG Belgium - 08/08/2019
Let's write secure Drupal code! DUG Belgium - 08/08/2019Let's write secure Drupal code! DUG Belgium - 08/08/2019
Let's write secure Drupal code! DUG Belgium - 08/08/2019
 
REST Introduction (PHP London)
REST Introduction (PHP London)REST Introduction (PHP London)
REST Introduction (PHP London)
 
RefCard RESTful API Design
RefCard RESTful API DesignRefCard RESTful API Design
RefCard RESTful API Design
 

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 HowManish 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 2018Manish Pandit
 
Disaster Recovery and Reliability
Disaster Recovery and ReliabilityDisaster Recovery and Reliability
Disaster Recovery and ReliabilityManish 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 JenkinsManish 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 JavaManish Pandit
 
AWS Primer and Quickstart
AWS Primer and QuickstartAWS Primer and Quickstart
AWS Primer and QuickstartManish 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 ConnectManish Pandit
 
Motivation : it Matters
Motivation : it MattersMotivation : it Matters
Motivation : it MattersManish Pandit
 
Building Apis in Scala with Playframework2
Building Apis in Scala with Playframework2Building Apis in Scala with Playframework2
Building Apis in Scala with Playframework2Manish 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 IGNManish 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 ScalaManish Pandit
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented ProgrammingManish 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 RESTManish Pandit
 
NoSQLCamp : MongoDB at IGN
NoSQLCamp : MongoDB at IGNNoSQLCamp : MongoDB at IGN
NoSQLCamp : MongoDB at IGNManish 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 PlatformManish Pandit
 
Silicon Valley Code Camp 2010: Social Platforms : What goes on under the hood
Silicon Valley Code Camp 2010: Social Platforms : What goes on under the hoodSilicon Valley Code Camp 2010: Social Platforms : What goes on under the hood
Silicon Valley Code Camp 2010: Social Platforms : What goes on under the hoodManish 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
 
AWS Primer and Quickstart
AWS Primer and QuickstartAWS Primer and Quickstart
AWS Primer and Quickstart
 
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
 
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
 
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
 
Silicon Valley Code Camp 2010: Social Platforms : What goes on under the hood
Silicon Valley Code Camp 2010: Social Platforms : What goes on under the hoodSilicon Valley Code Camp 2010: Social Platforms : What goes on under the hood
Silicon Valley Code Camp 2010: Social Platforms : What goes on under the hood
 

Recently uploaded

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 

Recently uploaded (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

Scalabay - API Design Antipatterns