![Page 1: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/1.jpg)
The “I” is for Interaction!Applying a Developer-Centric Approach to API Design
Ronnie MitraPrincipal API Architect - EuropeLayer 7 API Academy
![Page 2: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/2.jpg)
![Page 3: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/3.jpg)
API Management
virtual cloudon-premise
![Page 4: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/4.jpg)
API Academy
Mike Amundsen Ronnie Mitra
![Page 5: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/5.jpg)
The “I” is for Interaction!
![Page 6: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/6.jpg)
Ok. It isn’t really.
![Page 7: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/7.jpg)
InteractionDesign
![Page 8: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/8.jpg)
UsabilityHuman-Computer-Interaction
User Experience DesignGoal Oriented Design
![Page 9: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/9.jpg)
A user-centric view of design.
![Page 10: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/10.jpg)
http://www.flickr.com/photos/58754750@N08/5541472392/
![Page 11: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/11.jpg)
Well designed products are easier to use.
![Page 12: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/12.jpg)
Good design matters for Web APIs too.
![Page 13: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/13.jpg)
“Frictionless” integrationHigh rates of adoptionLow cost integration
We want:
![Page 14: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/14.jpg)
Focus on the developer experience(dx)
![Page 15: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/15.jpg)
Portal
API
![Page 16: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/16.jpg)
Why is this difficult?
![Page 17: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/17.jpg)
Reason #1We project our own perspective.
![Page 18: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/18.jpg)
![Page 19: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/19.jpg)
![Page 20: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/20.jpg)
Your code is not your API.Your data model is not your API.
![Page 21: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/21.jpg)
Reason #2We project our own biases.
![Page 22: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/22.jpg)
Never use SOAP?Why?
![Page 23: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/23.jpg)
Consider keyboards…
![Page 24: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/24.jpg)
http://www.flickr.com/photos/yvettemn/139890573/
![Page 25: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/25.jpg)
http://www.flickr.com/photos/jonathanpberger/7126054997/
![Page 26: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/26.jpg)
http://www.flickr.com/photos/novemberborn/286773981/
![Page 27: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/27.jpg)
It doesn’t matter that you don’t like SOAP.
![Page 28: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/28.jpg)
What matters is what your developer base thinks!
![Page 29: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/29.jpg)
Reason #3We make bad assumptions.
![Page 30: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/30.jpg)
API publishers are also developers.
![Page 31: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/31.jpg)
Reason #4We lack the time and money
required for design
![Page 32: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/32.jpg)
“Best practices”, patterns and standards become shortcuts
![Page 33: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/33.jpg)
Am I RESTfull enough?
![Page 34: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/34.jpg)
So, how can we do better?
![Page 35: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/35.jpg)
Developer-centric design requires effort and diligence.
![Page 36: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/36.jpg)
![Page 37: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/37.jpg)
![Page 38: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/38.jpg)
Design with the developer in mind.
![Page 39: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/39.jpg)
Ask them.
![Page 40: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/40.jpg)
• Interviews• Surveys• Listen (blogs, presentations,
tweets)
![Page 41: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/41.jpg)
"If I had asked people what they wanted, they would have said faster horses.“ – Henry Ford?
![Page 42: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/42.jpg)
• Observe• Prototype• Historical Data
![Page 43: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/43.jpg)
Consider all aspects of the DX:
RegistrationSecurity
TroubleshootingLearning
Interface Style
![Page 44: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/44.jpg)
Registration
Lazy RegistrationSocial IntegrationPersonalization
![Page 45: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/45.jpg)
Development Activity Cycle
1. Learn2. Code3. Implement4. Test 5. Fix
![Page 46: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/46.jpg)
Portal
API
Learn
Code
Test
![Page 47: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/47.jpg)
API
Learn
Test
![Page 48: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/48.jpg)
API explorers and “live documentation” can shorten the
gap between visibility and feedback.
![Page 49: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/49.jpg)
Interfaces
I use GET to write to your API?
![Page 50: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/50.jpg)
Interfaces
Hypermedia can provide:AffordancesConstraintsFeedback
API
![Page 51: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/51.jpg)
Security
Needs to be considered from a developer point of view
OAuth 2 is easier to implement than OAuth 1
(for your developers)
![Page 52: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/52.jpg)
1. Identify a Target Audience2. Learn about the audience3. Make API design choices that
are developer-centric4. Prototype and get feedback5. Iterate
How?
![Page 53: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/53.jpg)
Focus on the interactions that take place, rather than the interfaces
we expose
![Page 54: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/54.jpg)
Great API design can thrive in a developer-centric environment
![Page 55: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/55.jpg)
The “I” is for Interaction!Applying a Developer-Centric Approach to API Design
Ronnie MitraPrincipal API Architect - EuropeLayer 7 API Academy
![Page 56: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra](https://reader038.vdocuments.us/reader038/viewer/2022102713/55d746b4bb61ebd9108b45dd/html5/thumbnails/56.jpg)
www.apiacademy.co