API Design Principles for Accelerated Development
Upcoming SlideShare
Loading in...5
×
 

API Design Principles for Accelerated Development

on

  • 2,158 views

One of the largest issues in API architecture development is that the task is often driven by the pragmatic indoctrination of a specification into a product rather than designing around the speed and ...

One of the largest issues in API architecture development is that the task is often driven by the pragmatic indoctrination of a specification into a product rather than designing around the speed and ease of development, usually due to a separation between the engineering teams and their core developer user base.

Extending upon the ideas of API design around developer accelerated development delivered in the PayPal keynote, we will take a deeper look into some of the great techniques delivered to us through the RESTful specification, applying them to developer API consumption practices with the intention of creating efficient best practices for rapid development.

Within this talk we will explore what we have learned through reconstructing our API backbone at PayPal for our developer community, including:
- API automation practices for code reduction and application longevity
- Open security standards that promote developer integration ease and maintain strict security practices
- RESTful API architecture best practices for developer centric accelerated development

Statistics

Views

Total Views
2,158
Views on SlideShare
2,065
Embed Views
93

Actions

Likes
4
Downloads
63
Comments
0

3 Embeds 93

http://velocityconf.com 52
https://twitter.com 30
http://lanyrd.com 11

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • At the end of the day, we need to be designing for the developers
  • API system standards vs. efficient developmentREST is all about the tradeoffs
  • Lowering perceived latency for developers
  • Reduction in system layeringCaching can reduce reliability (stale data)
  • Protects new systems from legacy APIs
  • Layering the system to separate legacy systems
  • Use HTTP properly – standard request and response types
  • Building in automation, using HATEOAS
  • Heavier payloads being sent throughReduction in developer code size & scalable architecture
  • Use HTTP properly – standard request and response types
  • Offload complexity to the implementing provider

API Design Principles for Accelerated Development API Design Principles for Accelerated Development Presentation Transcript

  • For Accelerated DevelopmentAPI Design PrinciplesJonathan LeBlancHead of Developer Evangelism (North America)Github: http://github.com/jcleblancSlides: http://slideshare.net/jcleblancTwitter: @jcleblanc
  • The Exploration of API DesignBlank Slate Constraints
  • Building APIs for Developers View slide
  • The Tradeoff Decision View slide
  • Developer efficiency task 1Lowering perceived latency for developersLower Perceived Latency
  • What’s the Tradeoff?System LayeringResult Caching
  • Layering the SystemEncapsulates legacy systemsSimplified componentsBetter load balancing abilitiesSystems can evolve independantly
  • Separation of Concerns
  • Stateless System Latency IssuesData DuplicationA + BA + C
  • Caching for Latency Reduction
  • Developer efficiency task 2Use HTTP properly – standard request andresponse typesUse HTTP Properly
  • What’s the Tradeoff?
  • Requests and ResponsesGET / PUT / POST / DELETEhave specific actionsProper status codes and errorresponses
  • Don’t do This{"error": "error 10008"}Do ThisHTTP/1.1 400 Bad RequestContent-Length: 35{"message":"Problems parsing JSON"}Descriptive Messaging
  • Developer efficiency task 3Building in automation – using HATEOASBuild in Automation
  • What’s the Tradeoff?Payload Size Code Length
  • How we Normally Consume APIs
  • Using HATEOAS to Automate
  • "links": [{"href":"https://api.sandbox.paypal.com/v1/payments/authorization/6H149011U8307001M","rel":"self","method":"GET"},{"href":"https://api.sandbox.paypal.com/v1/payments/authorization/6H149011U8307001M/capture","rel":"capture","method":"POST"},{"href":"https://api.sandbox.paypal.com/v1/payments/authorization/6H149011U8307001M/void","rel":"void","method":"POST"}]
  • Developer efficiency task 2Secure Data Resources
  • What’s the Tradeoff?Security Usability
  • Some Security ModelsProprietary SolutionBasic AuthenticationOAuth 1.0aOAuth 2 / OpenID Connect
  • Developer efficiency task 4Offload complexity to the implementingproviderOffload Complexity
  • The ComplexitiesAuthentication / AuthorizationLegacy API supportWorking between versioningAPI changes that break implementationsReduction in latency
  • API architecture is all about tradeoffsYou are not making a perfectsystem, you are making a perfectsystem for your developersBringing it all Together
  • http://bit.ly/api_design_for_devsThank You!Jonathan LeBlancHead of Developer Evangelism (North America)Github: http://github.com/jcleblancSlides: http://slideshare.net/jcleblancTwitter: @jcleblanc