Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
API 101
What are apis,
and how can I use them to take over the world?
talk overview
• Intros and Getting Started
• Dive into APIs
• Business Cases
• REST Deconstructed
• API and Developer Succ...
Intros and getting started
• Who are we?
• Who are you?
• Quick API definition
• API Example
• Workshop Participation
http...
tros and Getting Started ->

Who is kirsten?
API Ninja (developer evangelist)
Princess Polymath
tros and Getting Started ->

Who is Keith?
DEVELOPER EVANGELIST
TROUBLEMAKER
tros and Getting Started ->

who are you?
Developers
Designers
Marketing
Management
http://www.princesspolymath.com

Tweet...
tros and Getting Started ->

elevator pitch

What is an API?
A predictable way to
communicate with a computer
system

http...
tros and Getting Started ->

it’s a workshop!
We’re here to learn
This is a safe space
There are no stupid questions
Someo...
tros and Getting Started ->

asking questions
Wave your hands around!
Tweet with #api101 and #apistrat
... or @synedra and...
tros and Getting Started ->

quick api example

http://www.princesspolymath.com

Tweet thoughts to:#apistrat #api101
tros and Getting Started ->

twitter -> wordpress
tros and Getting Started ->

how does that work?
Wordpress Plugin
Twitter API

Uses Authentication

Wordpress

Searches AP...
dive into apis
• Quick history of APIs
• What do current APIs make possible?

http://www.princesspolymath.com

Tweet thoug...
Dive into APIs ->

Very Brief History

• Computer -> Computer
• Databases
• Backups
• Client -> Server
• Email
• Content M...
Dive into APIs ->

what can apis do?

http://www.princesspolymath.com

Tweet thoughts to:#apistrat #api101
quick break!
• Don’t forget to tweet or comment your questions or
comments!
• Let’s check what’s there now... network will...
So you want to build an
API?
D Keith Casey Jr
Developer Evangelist, Austin
TALK OVERVIEW
• Intros and Getting Started
• Dive into APIs
• Business Cases
• REST Deconstructed
• API and Developer Succ...
Business Cases

@CaseySoftware

Tweet thoughts to:#apistrat #api101
API FIRST!

@CaseySoftware

Tweet thoughts to:#apistrat #api101
@CaseySoftware

Tweet thoughts to:#apistrat #api101
Platform as a strategy

@CaseySoftware

Tweet thoughts to:#apistrat #api101
Something to stand
on
Instead of building everything yourself.. Blackberry/RIM

Build a platform that others can build on ...
stuff vs optimization
Stuff: How can we build more stuff?
Examples: manufacturing, NYT/blogging networks
Optimization: How...
hope as marketing

@CaseySoftware

Tweet thoughts to:#apistrat #api101
marketing as
marketing
Toolbox
Easy to use & plug into the system
Magnet
Pulls customers (both producers & consumers) into...
business
reasons
reasons
@CaseySoftware

Tweet thoughts to:#apistrat #api101
MARKET
PENETRATION:
NETFLIX
@CaseySoftware

Tweet thoughts to:#apistrat #api101
DEFENSIVE
STRATEGY:
PAYPAL
@CaseySoftware

Tweet thoughts to:#apistrat #api101
DRIVE USAGE:
TWITTER/FACEBO
OK
@CaseySoftware

Tweet thoughts to:#apistrat #api101
technical
Reasons
Reasons
@CaseySoftware

Tweet thoughts to:#apistrat #api101
email: Sendgrid
Abstraction
Abstraction
@CaseySoftware

Tweet thoughts to:#apistrat #api101
storage: Dropbox
metered usage
metered usage
@CaseySoftware

Tweet thoughts to:#apistrat #api101
inboxes: Context.io
simplification
simplification
@CaseySoftware

Tweet thoughts to:#apistrat #api101
telephony: Twilio
All of the above
(abstraction, metered usage, simplification)
(abstraction, metered usage, simplificatio...
Architectural
considerations
@CaseySoftware

Tweet thoughts to:#apistrat #api101
Schema
“An outline or model; organized pattern of thought or behavior”

Source: http://en.wikipedia.org/wiki/Schema_(psych...
Affordances
“An affordance is a quality of an object, or an environment, which
allows a user to perform an action.”

Sourc...
Choose your own
Adventure

@CaseySoftware

Tweet thoughts to:#apistrat #api101
Versioning
• Two schools of thought:
• Part of the name
• Keith

vs

Keith Jr

• /v1/name-of-item

vs

/v2/name-of-item

•...
Authentication &
Access Control
Access Control
@CaseySoftware

Tweet thoughts to:#apistrat #api101
TALK OVERVIEW
• Intros and Getting Started
• Dive into APIs
• Business Cases
• REST Deconstructed
• API and Developer Succ...
talk overview
• Intros and Getting Started
• Dive into APIs
• Business Cases
• REST Deconstructed
• API and Developer Succ...
REst deconstructed
• HTTP
• Structure
• Verbs
• REST
• Structure
• Verbs
• Response Formats
• JSON
• XML
http://www.prince...
EST Deconstructed ->

conversations

•

Unique names for things
Iced Tea

•

Create, Read, Update and Delete (CRUD)
Order,...
EST Deconstructed ->

HTTP
•

HyperText Transfer Protocol

•

Main internet protocol

•

Browser->web server

•

Technical...
EST Deconstructed -> HTTP

http messages
•

Simple resource address - URL (name)

•

Request -> Response

•

Context in he...
EST Deconstructed -> HTTP

HTTP verbs
•

GET

•

POST

•

PUT

•

DELETE

•

... and a few others

http://www.princesspoly...
EST Deconstructed -> HTTP

REST Structure
•

URL -> Name

•

Context in headers

•

Substitutions and changes

http://www....
EST Deconstructed -> HTTP

REST actions
•

GET - Read back order

•

POST - Place order

•

PUT - Change order

•

DELETE ...
EST Deconstructed -> Formats

response formats
JSON
{
“My thing” : “Awesome sauce”
}

• Smaller / More efficient
• More hu...
TALK OVERVIEW
• Intros and Getting Started
• Dive into APIs
• Business Cases
• REST Deconstructed
• API and Developer Succ...
API AND DEVELOPER SUCCESS
• API Design
• Marketing your API
• Supporting your Developers

http://www.princesspolymath.com
...
PI and Developer Success ->

API DESIGN

• User Experience - What do you want people to do with your
API?
• System constra...
PI and Developer Success ->

MARKETING YOUR API

• Clearly communicate API goals and usage
• Lower barrier to entry for de...
PI and Developer Success ->

DEVELOPER SUPPORT

• Clear, consistent communication
• Fantastic documentation, tutorials, li...
Questions?
• Final check for questions on twitter/comments
• Audience questions?

http://www.princesspolymath.com

Tweet t...
WIFI?
• PARC55-MEETING
• Password is on ApistratSF2013

http://www.princesspolymath.com

Tweet thoughts to:#apistrat #api1...
Upcoming SlideShare
Loading in …5
×

API 101 - Understanding APIs.

19,749 views

Published on

Published in: Technology, Design

API 101 - Understanding APIs.

  1. 1. API 101 What are apis, and how can I use them to take over the world?
  2. 2. talk overview • Intros and Getting Started • Dive into APIs • Business Cases • REST Deconstructed • API and Developer Success http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  3. 3. Intros and getting started • Who are we? • Who are you? • Quick API definition • API Example • Workshop Participation http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  4. 4. tros and Getting Started -> Who is kirsten? API Ninja (developer evangelist) Princess Polymath
  5. 5. tros and Getting Started -> Who is Keith? DEVELOPER EVANGELIST TROUBLEMAKER
  6. 6. tros and Getting Started -> who are you? Developers Designers Marketing Management http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  7. 7. tros and Getting Started -> elevator pitch What is an API? A predictable way to communicate with a computer system http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  8. 8. tros and Getting Started -> it’s a workshop! We’re here to learn This is a safe space There are no stupid questions Someone else wants to ask too I’ll give you a treat! http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  9. 9. tros and Getting Started -> asking questions Wave your hands around! Tweet with #api101 and #apistrat ... or @synedra and @caseysoftware Comment on the API 101 Cheatsheet on http://www.princesspolymath.com http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  10. 10. tros and Getting Started -> quick api example http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  11. 11. tros and Getting Started -> twitter -> wordpress
  12. 12. tros and Getting Started -> how does that work? Wordpress Plugin Twitter API Uses Authentication Wordpress Searches API for #api101 Formats response Fills in sidebar http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  13. 13. dive into apis • Quick history of APIs • What do current APIs make possible? http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  14. 14. Dive into APIs -> Very Brief History • Computer -> Computer • Databases • Backups • Client -> Server • Email • Content Management Systems • Web Client -> API Server http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  15. 15. Dive into APIs -> what can apis do? http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  16. 16. quick break! • Don’t forget to tweet or comment your questions or comments! • Let’s check what’s there now... network willing • Audience questions? • Aaaaannnnndddd.... over to Keith! http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  17. 17. So you want to build an API? D Keith Casey Jr Developer Evangelist, Austin
  18. 18. TALK OVERVIEW • Intros and Getting Started • Dive into APIs • Business Cases • REST Deconstructed • API and Developer Success @CaseySoftware Tweet thoughts to:#apistrat #api101
  19. 19. Business Cases @CaseySoftware Tweet thoughts to:#apistrat #api101
  20. 20. API FIRST! @CaseySoftware Tweet thoughts to:#apistrat #api101
  21. 21. @CaseySoftware Tweet thoughts to:#apistrat #api101
  22. 22. Platform as a strategy @CaseySoftware Tweet thoughts to:#apistrat #api101
  23. 23. Something to stand on Instead of building everything yourself.. Blackberry/RIM Build a platform that others can build on to create value.. Apple @CaseySoftware Tweet thoughts to:#apistrat #api101
  24. 24. stuff vs optimization Stuff: How can we build more stuff? Examples: manufacturing, NYT/blogging networks Optimization: How can we better distribute the stuff? Examples: Walmart, search engines/RSS readers Platform: How can we redefine ‘stuff’ & find new ways to solve the problem? Examples: Ebay/Amazon Prime, Twitter Source: http://platformed.info/platform-thinking/ @CaseySoftware Tweet thoughts to:#apistrat #api101
  25. 25. hope as marketing @CaseySoftware Tweet thoughts to:#apistrat #api101
  26. 26. marketing as marketing Toolbox Easy to use & plug into the system Magnet Pulls customers (both producers & consumers) into the system Matchmaker Accelerate & facilitate connections between producers & consumers Source: http://blogs.hbr.org/2013/01/three-elements-of-a-successful-platform/ @CaseySoftware Tweet thoughts to:#apistrat #api101
  27. 27. business reasons reasons @CaseySoftware Tweet thoughts to:#apistrat #api101
  28. 28. MARKET PENETRATION: NETFLIX @CaseySoftware Tweet thoughts to:#apistrat #api101
  29. 29. DEFENSIVE STRATEGY: PAYPAL @CaseySoftware Tweet thoughts to:#apistrat #api101
  30. 30. DRIVE USAGE: TWITTER/FACEBO OK @CaseySoftware Tweet thoughts to:#apistrat #api101
  31. 31. technical Reasons Reasons @CaseySoftware Tweet thoughts to:#apistrat #api101
  32. 32. email: Sendgrid Abstraction Abstraction @CaseySoftware Tweet thoughts to:#apistrat #api101
  33. 33. storage: Dropbox metered usage metered usage @CaseySoftware Tweet thoughts to:#apistrat #api101
  34. 34. inboxes: Context.io simplification simplification @CaseySoftware Tweet thoughts to:#apistrat #api101
  35. 35. telephony: Twilio All of the above (abstraction, metered usage, simplification) (abstraction, metered usage, simplification) (abstraction, metered usage, simplification) @CaseySoftware Tweet thoughts to:#apistrat #api101
  36. 36. Architectural considerations @CaseySoftware Tweet thoughts to:#apistrat #api101
  37. 37. Schema “An outline or model; organized pattern of thought or behavior” Source: http://en.wikipedia.org/wiki/Schema_(psychology) WRT Hypermedia: http://json-schema.org @CaseySoftware Tweet thoughts to:#apistrat #api101
  38. 38. Affordances “An affordance is a quality of an object, or an environment, which allows a user to perform an action.” Source: http://en.wikipedia.org/wiki/Affordance WRT Hypermedia: http://amundsen.com/blog/archives/1109 @CaseySoftware Tweet thoughts to:#apistrat #api101
  39. 39. Choose your own Adventure @CaseySoftware Tweet thoughts to:#apistrat #api101
  40. 40. Versioning • Two schools of thought: • Part of the name • Keith vs Keith Jr • /v1/name-of-item vs /v2/name-of-item • Part of the conversation (content negotiation) • Lunch @CaseySoftware vs dinner menu Tweet thoughts to:#apistrat #api101
  41. 41. Authentication & Access Control Access Control @CaseySoftware Tweet thoughts to:#apistrat #api101
  42. 42. TALK OVERVIEW • Intros and Getting Started • Dive into APIs • Business Cases • REST Deconstructed • API and Developer Success @CaseySoftware Tweet thoughts to:#apistrat #api101
  43. 43. talk overview • Intros and Getting Started • Dive into APIs • Business Cases • REST Deconstructed • API and Developer Success http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  44. 44. REst deconstructed • HTTP • Structure • Verbs • REST • Structure • Verbs • Response Formats • JSON • XML http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  45. 45. EST Deconstructed -> conversations • Unique names for things Iced Tea • Create, Read, Update and Delete (CRUD) Order, Get order back, Change order, Cancel order • Substitutions and changes Unsweetened, Extra Ice • Context For here or to go? http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  46. 46. EST Deconstructed -> HTTP • HyperText Transfer Protocol • Main internet protocol • Browser->web server • Technically - chatty, inefficient... simple http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  47. 47. EST Deconstructed -> HTTP http messages • Simple resource address - URL (name) • Request -> Response • Context in headers • Substitutions: added to name http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  48. 48. EST Deconstructed -> HTTP HTTP verbs • GET • POST • PUT • DELETE • ... and a few others http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  49. 49. EST Deconstructed -> HTTP REST Structure • URL -> Name • Context in headers • Substitutions and changes http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  50. 50. EST Deconstructed -> HTTP REST actions • GET - Read back order • POST - Place order • PUT - Change order • DELETE - Cancel order • ... and a few others http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  51. 51. EST Deconstructed -> Formats response formats JSON { “My thing” : “Awesome sauce” } • Smaller / More efficient • More human readable • Simpler to use in many programming languages • More natural for web developers http://www.princesspolymath.com XML <stuff> <my_thing>Awesome sauce</my_thing> </stuff> • More verbose • Less human readable • Good integration with .NET • Supports better metainformation with attributes Tweet thoughts to:#apistrat #api101
  52. 52. TALK OVERVIEW • Intros and Getting Started • Dive into APIs • Business Cases • REST Deconstructed • API and Developer Success http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  53. 53. API AND DEVELOPER SUCCESS • API Design • Marketing your API • Supporting your Developers http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  54. 54. PI and Developer Success -> API DESIGN • User Experience - What do you want people to do with your API? • System constraints - How do you want them to do it? • Creation, Design and Documentation of APIs Thursday, 11:20 (Apiary.io, Swagger, APISpark, Reverb!) • Hypermedia APIs Thursday, 1:50 (Elastic Path, NPR, Comcast, Layer7) http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  55. 55. PI and Developer Success -> MARKETING YOUR API • Clearly communicate API goals and usage • Lower barrier to entry for developers • API Marketing and Evangelism Friday, 11:45 (SendGrid, Challengepost, WSO2, Hackerleague) • API Discovery Thursday, 11:20 (Mashape, Mulesoft, Klout, Parasoft) http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  56. 56. PI and Developer Success -> DEVELOPER SUPPORT • Clear, consistent communication • Fantastic documentation, tutorials, libraries • Forums, participation • Provide excellent exploration and development tools • In short, respect your developers’ time and reduce confusion http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  57. 57. Questions? • Final check for questions on twitter/comments • Audience questions? http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101
  58. 58. WIFI? • PARC55-MEETING • Password is on ApistratSF2013 http://www.princesspolymath.com Tweet thoughts to:#apistrat #api101

×