+ All Categories
Home > Documents > Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

Date post: 07-Jul-2015
Category:
Upload: ca-api-management
View: 409 times
Download: 4 times
Share this document with a friend
Description:
Irakli Nadareishvili's, Director of API Strategy for CA API Academy, speaking session for Nordic APIs was on "Building APIs That Last for Decades"
Popular Tags:
36
Irakli Nadareishvili Director of API Strategy, CA Technologies @inadarei
Transcript
Page 1: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

!Irakli!Nadareishvili!

Director!of!API!Strategy,!CA!Technologies!!

@inadarei!

Page 2: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

!?! BUT WHY?

Page 3: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy
Page 4: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

2013:

80 devices /sec

Source:!Cisco!

Page 5: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

2014:

100 devices /sec

Source:!Cisco!

Page 6: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

2020:

250 devices /sec

Source:!Cisco!

Page 7: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

2020:

50bn conn. devices

Source:!Cisco!

Page 8: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy
Page 9: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy
Page 10: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

You Assume Control?

Page 11: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy
Page 12: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

!

Page 13: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy
Page 14: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy
Page 15: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

Hypermedia-Oriented Style

@inadarei

What!if!the!server!could!dynamically!tell!the!client!what!the!client!can!do!and!how,!guiding!the!client!from!one!desired!state!to!another?!

Avoid&'ght&coupling&and&hardcoding!&

Page 16: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

Response = Data + Controls

@inadarei

API!server!would!have!to!send!client!not!just!sta$c!data,!but!also!controls!describing!API!affordances.!

Page 17: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

Hypermedia per Fielding

Architectural!Styles!and!the!Design!of!NetworkFbased!SoGware,!2001!F!Roy!T.!Fielding!

"Hypermedia!is!defined!by!the!presence!of!applicaQon!control!informaQon!embedded!within,!or!as!a!layer!above,!the!presentaQon!of!informaQon�!(2001)!

Page 18: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

Affordances

@inadarei

Theory!of!Affordances,!1979!F!James!J.!Gibson!!

Affordances!are!all!"acQon!possibiliQes"!latent!in!the!environment.!!

Page 19: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

Affordances

@inadarei

Page 20: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

Affordances

@inadarei

Page 21: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

Affordances’re key to a good design Imagine!a!car!or!a!building!that!you!couldn't!possibly!use,!unless!you!had!a!manual.!That!sounds!silly,!we!don't!build!cars!or!buildings!like!that.!Yet,!that!is!exactly!how!we!build!APIs!today.!

Page 22: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

Familiarity Creates Usability Are!all!cars!exactly!the!same?!No.!Can!we!do!basic!things!with!any!car,!once!we!understand!how!cars!in!general!work?!Yes!!Do!we!need!to!read!a!manual!for!that?!No!!

Page 23: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

Common vocabulary:

in Media Types paginaQon,!internaQonalizaQon,!templated!querying,!data!updates…!

Page 24: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

Semantic GAP

Page 25: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

Profiles

[Profile!link!relaQon!defines]!addiQonal!semanQcs!that!can!be!used!to!process!a!resource!representaQon,!such!as!constraints,!convenQons,!extensions,!or!any!other!aspects!that!do!not!alter!the!basic!media!type!semanQcs!

RFC6906:!!

Profiles!can!be!combined,!meaning!that!a!single!resource!representaQon!can!conform!to!zero!or!any!number!of!profiles.!

Page 26: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

Profile Examples:

1.  XMDP (HTML-only)http://gmpg.org/xmdp/

2.  PMP (CDoc-only)https://github.com/publicmediaplatform/pmpdocs/wiki/Profile-profile

3.  ALPShttp://www.ietf.org/id/draft-amundsen-richardson-foster-alps-00.txt

And!many!others…!

Page 27: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

OMG! This Feels So Complicated!

@inadarei

Page 28: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

No, It Is Not Complicated!

@inadarei

You!are!already!very!familiar!with!all!of!it:!World!Wide!Web!is!a!perfect!Hypermedia!system!and!HTML!is!one!of!the!most!successful!hypermedia!types.!

Page 29: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

When in doubt:

@inadarei

Always!draw!parallels!with!web!and!think!about:!“—&Ok,&so&how&would&I&do&this&if&I&was&&just&building&a&website&and&this&was&just&HTML?”&

Bingo! Except!HTML![usually]!deals!with!unstructured!content!and!is!not!always!appropriate!for!APIs!that!marshal!structured!data.!Let’s!do!a!ligle!more!of!the!learning!thing.!

Page 30: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

7-Step Design Process

1.  List Semantic Descriptors2.  Draw a State Diagram3.  Reconcile Names4.  Choose a Media Type5.  Write a Profile6.  Implementation7.  Publication

Source:!Richardson!&!Amundsen,!Resiul!Web!APIs!

Page 31: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

#2 State Diagram Example: Blog

List of blog posts Create blog post

Save post

Page 32: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

#3 Reconcile Names 1.  IANA Link Relations

http://www.iana.org/assignments/link-relations/link-relations.xhtml

2.  Microformats Link Relations http://microformats.org/wiki/existing-rel-values

3.  Dublin Core Metadata Element Set, Version 1 http://dublincore.org/documents/dces/

Source:!M.!Amundsen,!UBER!Hypermedia!Format!

Page 33: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

#4 Choose a Hypermedia Type

1.  UBER (http://uberhypermedia.org)2.  Collection+JSON (Col.Doc)3.  HAL4.  Siren5.  JSON:API6.  HTML (yeap! Just ask Jon Moore)

Page 34: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

7-Step Design Process

1.  List Semantic Descriptors2.  Draw a State Diagram3.  Reconcile Names4.  Choose a Media Type5.  Write a Profile6.  Implementation7.  Publication

Source:!Richardson!&!Amundsen,!Resiul!Web!APIs!

Page 35: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

Who Uses Hypermedia APIs? 1.  AWS Streaming API2.  ElasticPath Cortex3.  Comcast4.  Microsoft Lync5.  Paypal6.  Github7.  FoxyCart8.  Huddle9.  Public Media Platform10.  …

You?

Page 36: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy

What now? 1.  Follow @mamund2.  Follow @apiacademy3.  Follow @darrel_miller4.  Follow @jharmn5.  Follow @kinlane (always)6.  Follow @inadarei (if you want)7.  Dave Goldberg’s Hypermedia Resources:

http://davejonathangoldberg.github.io/apis/hypermedia/2014/08/08/hypermedia-resources/

8.  Hypermedia Google Group https://groups.google.com/forum/#!forum/hypermedia-web

9.  UBER Google Group https://groups.google.com/forum/#!forum/uber-hypermedia

Be involved. This is a super-active and exciting space!


Recommended