+ All Categories
Home > Technology > Introduction to APIs - What, Why and How at CodeCore Bootcamp

Introduction to APIs - What, Why and How at CodeCore Bootcamp

Date post: 06-May-2015
Category:
Upload: codecore
View: 637 times
Download: 0 times
Share this document with a friend
Description:
The following presentation was given at CodeCore Community Week in April. You can find a full video of the presentation here: http://www.codecore.ca/apis-what-why-and-how-with-ganesh-swami-of-silota/ Whether you are building for the web, mobile, or devices yet to be invented, the enabling technology behind them are APIs. In this talk, Ganesh introduced APIs, describe what makes them possible, the process for creating APIs and supporting them. Ganesh is the founder of Silota -- a Search as a Service API. He started his programming career writing high performance algorithms for protein simulations. He likes the challenge of taking complex topics and explaining them to a beginner.
27
Introduction to APIs CodeCore Community Week April 25, 2014 Ganesh Swami www.silota.com
Transcript
Page 1: Introduction to APIs - What, Why and How at CodeCore Bootcamp

Introduction to APIsCodeCore Community Week

April 25, 2014

Ganesh Swamiwww.silota.com

Page 2: Introduction to APIs - What, Why and How at CodeCore Bootcamp

Hi

• Programming professionally for 10+ years

• x86 assembly, STL, boost, python-boost, python

Page 3: Introduction to APIs - What, Why and How at CodeCore Bootcamp

SILOTA• Search As A Service

• full stack: crawling, indexing, retrieving, tag deployment

• First class developer experience (DX)

• documentation

• testing

• sandbox

• 800+ search engines in production!

Page 4: Introduction to APIs - What, Why and How at CodeCore Bootcamp

APIs: What & Why

Page 5: Introduction to APIs - What, Why and How at CodeCore Bootcamp

What is an API?Application Programming Interface

!An API is the interface implemented by an

application which allows other applications to communicate with it.

Page 6: Introduction to APIs - What, Why and How at CodeCore Bootcamp

What is an API?

communicate

Page 7: Introduction to APIs - What, Why and How at CodeCore Bootcamp

Why build an API?

• explosion of devices connected to the internet

• can be a company’s greatest asset

• bizdev 2.0: internal developers, consultants, partners, customers

Page 8: Introduction to APIs - What, Why and How at CodeCore Bootcamp

Sample APIs• aws

• dropbox

• instagram

• pinterest

• github

• stripe

• salesforce

• twillio

• …

Page 9: Introduction to APIs - What, Why and How at CodeCore Bootcamp

Source: Mary Meeker’s Internet Trends 2013

Page 10: Introduction to APIs - What, Why and How at CodeCore Bootcamp

APIs: How

Page 11: Introduction to APIs - What, Why and How at CodeCore Bootcamp

What is REST?• REpresentational State Transfer

• logical resources manipulated with HTTP verbs

• modern best practice

• wide adoption

• contrast with SOAP

Page 12: Introduction to APIs - What, Why and How at CodeCore Bootcamp

HTTP Clients

Request Response

GET  /simtec/httpgallery/introduction/  HTTP/1.1  Accept:*/*                                Accept-­‐Language:  en-­‐gb  Accept-­‐Encoding:  gzip,  deflate  User-­‐Agent:  Mozilla/4.0  (compatible;  MSIE  6.0)  Host:  www.httpwatch.com  Connection:  Keep-­‐Alive  !!!!!

HTTP/1.1  200  OK  Server:  Microsoft-­‐IIS/5.1  Date:  Mon,  04  Oct  2004  12:04:43  GMT  X-­‐Powered-­‐By:  ASP.NET  X-­‐AspNet-­‐Version:  1.1.4322  Cache-­‐Control:  no-­‐cache  Pragma:  no-­‐cache  Expires:  -­‐1  Content-­‐Type:  text/html;  charset=utf-­‐8  Content-­‐Length:  8307  !<html>      <head>  ...

Page 13: Introduction to APIs - What, Why and How at CodeCore Bootcamp

HTTP Verbs

• GET,  POST,  PUT,  PATCH,  DELETE

Page 14: Introduction to APIs - What, Why and How at CodeCore Bootcamp

Status Codes

2xx OK, created, all good, carry on

4xx User error: bad API key, malformed data, item not found, etc.

5xx Server error

Page 15: Introduction to APIs - What, Why and How at CodeCore Bootcamp

Embrace HTTPGET  /document Retrieve all documents

GET  /document/19 Retrieve a specific document #19

POST  /document Create a new document

PUT  /document/19 Update an existing document #19

DELETE  /document/19 Delete an existing document #19

Page 16: Introduction to APIs - What, Why and How at CodeCore Bootcamp
Page 17: Introduction to APIs - What, Why and How at CodeCore Bootcamp

Postman: Chrome Extension

Page 18: Introduction to APIs - What, Why and How at CodeCore Bootcamp

Bipartite graph/documents /documents/:id …

GET

POST error

PUT error

PATCH error

DELETE

Page 19: Introduction to APIs - What, Why and How at CodeCore Bootcamp

Best practicessecurity

base URLs

serialization

timestamps

versioning

caching

gzip

logging

Page 20: Introduction to APIs - What, Why and How at CodeCore Bootcamp

Best practicessecurity https all the way

base URLs api.companyname.com

serialization json

timestamps ISO 8601 & UTC

versioning /v1/

caching ETag & Last-Modified

gzip always & pretty print responses

logging if possible

Page 21: Introduction to APIs - What, Why and How at CodeCore Bootcamp

Recap

• https + gzip + json

• use bipartite graph of nouns and verbs

• great documentation

• no surprises

Page 22: Introduction to APIs - What, Why and How at CodeCore Bootcamp

Integration Challenges

Page 23: Introduction to APIs - What, Why and How at CodeCore Bootcamp

Read on www.silota.com next week!

Page 24: Introduction to APIs - What, Why and How at CodeCore Bootcamp

Handling Timeouts

Page 25: Introduction to APIs - What, Why and How at CodeCore Bootcamp

The Pitch

BENEFITSCOSTS

What We Give (investment)

What We Get (return)

Page 26: Introduction to APIs - What, Why and How at CodeCore Bootcamp

References• How to Design a Good API and Why it Matters:

• http://lcsd05.cs.tamu.edu/slides/keynote.pdf

• Best Practices for Designing a Pragmatic RESTful API

• http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api

• REST worst practices:

• http://jacobian.org/writing/rest-worst-practices/

• Building RESTful APIs: http://www.slideshare.net/silota/building-restful-apis

Page 27: Introduction to APIs - What, Why and How at CodeCore Bootcamp

Keep in touch!

Ganesh Swami!

www.silota.com

[email protected]

@gane5h


Recommended