SlideShare a Scribd company logo
API 
An&pa)erns 
…iden&fying, 
and 
avoiding 
them 
Silicon 
Valley 
Code 
Camp 
2014 
#svcc
Silicon Valley 2014 - API Antipatterns
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
Ad

More Related Content

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
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 RDF
Leigh 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-final
Romania 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 studies
Diego Valerio Camarda
 
1-04: HTML Elements
1-04: HTML Elements1-04: HTML Elements
1-04: HTML Elements
apnwebdev
 
Agile Descriptions
Agile DescriptionsAgile Descriptions
Agile Descriptions
Tony 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
 
Google
GoogleGoogle
Google
sunil sharma
 
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-phpapp01
Charles Erwin
 
Google search tips
Google search tipsGoogle search tips
Google search tips
Yashwant Shet Talaulikar
 
Google searching techniques
Google searching techniquesGoogle searching techniques
Google searching techniques
abbas mohd
 
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 RDF
Leigh 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-final
Romania 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 studies
Diego Valerio Camarda
 
1-04: HTML Elements
1-04: HTML Elements1-04: HTML Elements
1-04: HTML Elements
apnwebdev
 
Agile Descriptions
Agile DescriptionsAgile Descriptions
Agile Descriptions
Tony 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-phpapp01
Charles Erwin
 
Google searching techniques
Google searching techniquesGoogle searching techniques
Google searching techniques
abbas mohd
 

Viewers also liked (20)

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
 
Subwayseries
SubwayseriesSubwayseries
Subwayseries
junesteward
 
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 Tht
benjo7
 
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 Tht
benjo7
 
Research Into Our Potential Target Audience
Research Into Our Potential Target AudienceResearch Into Our Potential Target Audience
Research Into Our Potential Target Audience
3246
 
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 Content
aahawkins
 
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 Assignment
shoptiludrop
 
Casp Webcast Intro
Casp Webcast IntroCasp Webcast Intro
Casp Webcast Intro
junesteward
 
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 Tht
benjo7
 
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 Tht
benjo7
 
Research Into Our Potential Target Audience
Research Into Our Potential Target AudienceResearch Into Our Potential Target Audience
Research Into Our Potential Target Audience
3246
 
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 Content
aahawkins
 
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 Assignment
shoptiludrop
 
Casp Webcast Intro
Casp Webcast IntroCasp Webcast Intro
Casp Webcast Intro
junesteward
 
Ad

Similar to Silicon Valley 2014 - API Antipatterns (20)

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
 
Web Scraping with PHP
Web Scraping with PHPWeb Scraping with PHP
Web Scraping with PHP
Matthew Turland
 
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
 
Cqrs api v2
Cqrs api v2Cqrs api v2
Cqrs api v2
Brandon Mueller
 
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 RESTful
goldoraf
 
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
 
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
 
Services web RESTful
Services web RESTfulServices web RESTful
Services web RESTful
goldoraf
 
Ad

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
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
 
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
 
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
 
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
 
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
 

Recently uploaded (20)

Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 

Silicon Valley 2014 - API Antipatterns