building apis that last for decades - irakli nadareishvili, director of api strategy, api academy
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"TRANSCRIPT
![Page 1: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/1.jpg)
!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](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/2.jpg)
!?! BUT WHY?
![Page 3: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/3.jpg)
![Page 4: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/4.jpg)
2013:
80 devices /sec
Source:!Cisco!
![Page 5: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/5.jpg)
2014:
100 devices /sec
Source:!Cisco!
![Page 6: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/6.jpg)
2020:
250 devices /sec
Source:!Cisco!
![Page 7: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/7.jpg)
2020:
50bn conn. devices
Source:!Cisco!
![Page 8: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/8.jpg)
![Page 9: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/9.jpg)
![Page 10: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/10.jpg)
You Assume Control?
![Page 11: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/11.jpg)
![Page 12: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/12.jpg)
!
![Page 13: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/13.jpg)
![Page 14: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/14.jpg)
![Page 15: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/19.jpg)
Affordances
@inadarei
![Page 20: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/20.jpg)
Affordances
@inadarei
![Page 21: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/24.jpg)
Semantic GAP
![Page 25: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/27.jpg)
OMG! This Feels So Complicated!
@inadarei
![Page 28: Building APIs That Last for Decades - Irakli Nadareishvili, Director of API Strategy, API Academy](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/31.jpg)
#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](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/32.jpg)
#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](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/33.jpg)
#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](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/34.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/35.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052623/559b331f1a28ab49638b45d5/html5/thumbnails/36.jpg)
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!