Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The API Dilemma

The API Dilemma

Creating a good, useful and functional API for your application can be one of the most difficult parts of a project. With more and more things becoming API-powered, it's important to plan well and provide what the user expects. I'll look at some principles you can follow to make sure the API you write is the right one, both from the developer perspective and what you, as a user, should expect of a quality web service API.

224dac66704579d941e927965a6220a2?s=128

Chris Cornutt

June 08, 2012
Tweet

Transcript

  1. 5)&"1*%*-&.." Making Useful Web Services Chris Cornutt Dutch PHP Conference

    2012 Friday, June 8, 2012
  2. They must be... Friday, June 8, 2012

  3. '6/$5*0/"- They must be... Friday, June 8, 2012

  4. '6/$5*0/"- They must be... ."*/5"*/"#-& Friday, June 8, 2012

  5. '6/$5*0/"- They must be... ."*/5"*/"#-& 4&/4*#-& Friday, June 8, 2012

  6. What Are APIs? APIs are your public face to the

    developers of the world. They are the gatekeepers to your data and the heart of your applications. They can give control and they can take it away... think wisely about your choices. Friday, June 8, 2012
  7. More Formally? APIs (Application Programming Interfaces) bridge applications, providing a

    standardized method for interaction. A contract of request and response makes them useful. Documentation is their guidebook. Friday, June 8, 2012
  8. #&'03&$0%& Community Friday, June 8, 2012

  9. Web Service or Go Home ✤$6450.&34#&$0.&"44&54 ✤40$*"-"1148*--%*&8*5)0655)&. ✤01&/%"5"#6*-%453645 ✤64&'6- '6/$5*0/"-)"11:%&74

    Friday, June 8, 2012
  10. Design Thinking Technology as a Tool to meet the User’s

    needs Friday, June 8, 2012
  11. Design Thinking Defined Friday, June 8, 2012

  12. Design Thinking Defined "TBTUZMFPGUIJOLJOH JUJTHFOFSBMMZDPOTJEFSFEUIFBCJMJUZUP DPNCJOFFNQBUIZGPSUIFDPOUFYUPGBQSPCMFN DSFBUJWJUZJOUIF HFOFSBUJPOPGJOTJHIUTBOETPMVUJPOT BOESBUJPOBMJUZUPBOBMZ[FBOE pUTPMVUJPOTUPUIFDPOUFYU

    Friday, June 8, 2012
  13. Design Thinking Defined "TBTUZMFPGUIJOLJOH JUJTHFOFSBMMZDPOTJEFSFEUIFBCJMJUZUP DPNCJOFFNQBUIZGPSUIFDPOUFYUPGBQSPCMFN DSFBUJWJUZJOUIF HFOFSBUJPOPGJOTJHIUTBOETPMVUJPOT BOESBUJPOBMJUZUPBOBMZ[FBOE pUTPMVUJPOTUPUIFDPOUFYU

    8JLJQFEJB Friday, June 8, 2012
  14. Design Thinking Defined ✤40-7&64&3130#-&.4 "TBTUZMFPGUIJOLJOH JUJTHFOFSBMMZDPOTJEFSFEUIFBCJMJUZUP DPNCJOFFNQBUIZGPSUIFDPOUFYUPGBQSPCMFN DSFBUJWJUZJOUIF HFOFSBUJPOPGJOTJHIUTBOETPMVUJPOT BOESBUJPOBMJUZUPBOBMZ[FBOE

    pUTPMVUJPOTUPUIFDPOUFYU 8JLJQFEJB Friday, June 8, 2012
  15. Design Thinking Defined ✤40-7&64&3130#-&.4 ✤.03&5)"/l5)*/,*/(z *5`4%0*/( "TBTUZMFPGUIJOLJOH JUJTHFOFSBMMZDPOTJEFSFEUIFBCJMJUZUP DPNCJOFFNQBUIZGPSUIFDPOUFYUPGBQSPCMFN DSFBUJWJUZJOUIF

    HFOFSBUJPOPGJOTJHIUTBOETPMVUJPOT BOESBUJPOBMJUZUPBOBMZ[FBOE pUTPMVUJPOTUPUIFDPOUFYU 8JLJQFEJB Friday, June 8, 2012
  16. Design Thinking Defined ✤40-7&64&3130#-&.4 ✤.03&5)"/l5)*/,*/(z *5`4%0*/( ✤*%&"5*0/ "TBTUZMFPGUIJOLJOH JUJTHFOFSBMMZDPOTJEFSFEUIFBCJMJUZUP DPNCJOFFNQBUIZGPSUIFDPOUFYUPGBQSPCMFN

    DSFBUJWJUZJOUIF HFOFSBUJPOPGJOTJHIUTBOETPMVUJPOT BOESBUJPOBMJUZUPBOBMZ[FBOE pUTPMVUJPOTUPUIFDPOUFYU 8JLJQFEJB Friday, June 8, 2012
  17. What a User Wants ✤%0/`5#&:06 #&5)&. ✤.&/5"-4)*'5 ✤5&$)%0&4/`5."55&3&9$&15 ✤(&5*53*()55)&'*3455*.&03%0/`5 ✤(00%%0$40/-:(040'"3

    Friday, June 8, 2012
  18. Informed Users are Happy Users ✤*/16506165*4"45"35 ✤&9".1-&4$0%& ✤26*$,45"35 ✤8"/55)&.50-07&:06 -*#3"3*&4

    ✤$0..0/5&3.4 Friday, June 8, 2012
  19. 5)&'*/&-*/& Power to the People Friday, June 8, 2012

  20. Friday, June 8, 2012

  21. YOU ARE HERE Friday, June 8, 2012

  22. YOU ARE HERE Friday, June 8, 2012

  23. Grow Around It ✤'*/%5)&&9$*5&.&/5 ✤.",&40.&5)*/(64&'6- ✤4)"3&8)"5:06$"/ ✤64&3'&&%#"$,5)064"/%803%4 ✤-&55)&.)"7&3&4063$&4 Friday, June

    8, 2012
  24. Is All Too Much? ✤'-&9*#*-*5:*4"45"5&0'.*/% ✤8*5)(3&"5108&3 ✤l"1*-*5&z ✤l#&$"64&8&$"/z Friday, June

    8, 2012
  25. Be Careful What You Wish For ✤'&&%#"$, -*,&*503/05 ✤5)&/&&%'03%&%*$"5&%4611035 ✤5&455)&-*.*54

    ✤-*45&/ Friday, June 8, 2012
  26. #&'03&$0%& Standards Friday, June 8, 2012

  27. Step 1 - Plan, Step 2 - Plan, Step 3...

    ✤(00%$0%&'03(00%4&37*$& ✤%0/`553:'03 ✤4."--&453&64"#-&1*&$&4 ✤/".*/($0/7&/5*0/4 ✤#&7&3#04&#65/05803%: ✤0#+&$54 /054&37*$&4 Friday, June 8, 2012
  28. 5)&&5&3/"-26&45 Talking The Right Tech Friday, June 8, 2012

  29. Friday, June 8, 2012

  30. TRS-80 Model III 32 years ago... Friday, June 8, 2012

  31. Avoid the “If only...” ✤*'*5%0&4/`5803, %0/`564&*5 ✤'0$640/41&&%"/%1&3'03."/$& ✤-*()55)&/)&"7: ✤%0/`5l-&",z ✤/00/&$"3&4"#065:063-*.*54

    Friday, June 8, 2012
  32. Plan for the Future ✤3"5&-*.*5*/( ✤"65)&/5*$"5*0/ ✤13*7"$: %"5"/&5803, ✤$-06%:$-06%$-06% %&1-0:.&/5

    Friday, June 8, 2012
  33. More Code, More Features ✤l40'5-"6/$)&4z ✤7&34*0/*/( ✤40-7&130#-&.4 %0/`5#6*-%'&"563&4 ✤$0)&4*0/ Friday,

    June 8, 2012
  34. Is REST The Answer? ✤40"1 :&4 *5`4"%*35:803% ✤9.-31$ ✤$6450. ✤.&44"(*/(7&3464.&44"(&

    Friday, June 8, 2012
  35. What Do You Have Inside? ✤8)"5:06)"7& ✤8)"5:06/&&% ✤015*.*;&8)"5`4/&&%&% ✤40'58"3&7&3464)"3%8"3& ✤4&$63*5:

    Friday, June 8, 2012
  36. Keep The Flow Going ✤1&3'03."/$&5&45*/( ✤-0"%5&45*/( ✤$0.10/&/54"/%4:45&. ✤'6/$5*0/"-5&45*/( ✤4&37*$&-&7&-"(3&&.&/54 Friday,

    June 8, 2012
  37. -00,*/(")&"% Trends in APIs Friday, June 8, 2012

  38. API2.0 Friday, June 8, 2012

  39. Less General, More Focus ✤"1*4'03"3&"40/ ✤5"3(&5"6%*&/$& ✤l"650."5&%0654063$*/(z ✤8)*5&-"#&- Friday, June

    8, 2012
  40. A Few Examples... ✤&$0..&3$& ✤7*3644$"//*/(%&5&$5*0/ ✤(&0(3"1)*$4&37*$&4 ✤5"4,&9&$65*0/ ✤&7&/5."/"(&.&/5 ✤4&37&3."/"(&.&/5$0/530- Friday,

    June 8, 2012
  41. APIs are the language and the future of the web.

    are you in or out? Friday, June 8, 2012
  42. https://joind.in/6241 Chris Cornutt ccornutt@phpdeveloper.org @enygma / @phpdeveloper / @phpquickfix Friday,

    June 8, 2012
  43. Orange pattern: http://www.flickr.com/photos/chapter3/3939313515/ Red Abstract: http://www.flickr.com/photos/ellenm1/5397931339/in/photostream/ TRS-80: http://www.flickr.com/photos/37796451@N00/4820561313/in/set-72157624564641788 Photo Credits

    https://joind.in/6241 Speakers Love Feedback! Rate Me! Friday, June 8, 2012