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

Creating the new: adidas APIs

Z
October 11, 2017

Creating the new: adidas APIs

The talk was given by Oldrich Novak and Zdenek Z Nemec at Nordic APIs, Stockholm. October 11th, 2017.

Z

October 11, 2017
Tweet

More Decks by Z

Other Decks in Technology

Transcript

  1. ADIDAS API LIFECYCLE 1 DESIGN DEVELOP & TEST DEPLOY PUBLISH CON

    SUM E AN ALYZE 2 3 4 5 6 7 UPDATE Prototype Feedback
  2. 1 DESIGN DEVELOP DEPLOY PUBLISH CON SUM E AN ALYZE

    2 3 4 5 6 7 UPDATE DESIGN API Visibility Client DX Stability & Extensibility
  3. ADIDAS API GUIDELINES Protocol-level Message-level Application-level Functional Requirements Governance Non-Functional Requirements

    Governance Execution Evolution Security Usability Maintainability Scaleability Extensibility https://www.gitbook.com/book/adidas-group/api-guidelines/
  4. 1 DESIGN DEVELOP DEPLOY PUBLISH CON SUM E AN ALYZE

    2 3 4 5 6 7 UPDATE DEVELOP & TEST‐API
  5. Performance Fast Delivery Server DX 1 DESIGN DEVELOP DEPLOY PUBLISH

    CON SUM E AN ALYZE 2 3 4 5 6 7 UPDATE DEPLOY API
  6. Security Ownership 1 DESIGN DEVELOP DEPLOY PUBLISH CON SUM E

    AN ALYZE 2 3 4 5 6 7 UPDATE PUBLISH API
  7. Client DX Stability & Extensibility 1 DESIGN DEVELOP DEPLOY PUBLISH

    CON SUM E AN ALYZE 2 3 4 5 6 7 UPDATE CONSUME API
  8. LOOSE COUPLING CLIENT MUST FOLLOW ROBUSTNESS PRINCIPLE, AND ACT INDEPENDENTL Y,

    NOT‐ASSUMING ANY INTERNAL IMPLEMENTATION OF THE SERVICE Client DX Stability & Extensibility
  9. Visibility 1 DESIGN DEVELOP DEPLOY PUBLISH CON SUM E AN

    ALYZE 2 3 4 5 6 7 UPDATE ANALYZE API
  10. Stability & Extensibility Client DX 1 DESIGN DEVELOP DEPLOY PUBLISH

    CON SUM E AN ALYZE 2 3 4 5 6 7 UPDATE UPDATE API
  11. –Mark Nottingham “The fundamental principle is that you can’t break

    existing clients, because you don’t know what they implement, and you don’t control them. In doing so, you need to turn a backwards-incompatible change into a compatible one.”
  12. RULES FOR EXTENDING • You MUST NOT take anything away

    (related: Minimal Surface Principle , Robustness Principle) • You MUST NOT change processing rules • You MUST NOT make optional things required • Anything you add MUST be optional (related Robustness Principle)
  13. CHANGE MANAGEMENT • Resource identifier including any query parameters and

    their semantics • Resource metadata • Action the resource affords • Relation with other resources • Representation format ANY‐CHANGE TO IS SUBJECT TO RULES FOR EXTENDING
  14. ADIDAS API LIFECYCLE 1 DESIGN DEVELOP & TEST DEPLOY PUBLISH CON

    SUM E AN ALYZE 2 3 4 5 6 7 UPDATE Prototype Feedback
  15. Bitbucket Apiary Jenkins Mashery API Gateway Mashery Cloud K8s Platfrom

    API Consumer Apiary Documentation Apiary Mock Service API Description API Description Service Implementation Apiary Style Guide Dredd Plug-in Apiary Test Reporter Apiary adidas team APIs Apiary Documentation Apiary Mock Service Analytics Admin Mashery Toolbelt 2 3 4 5 6 7 1 1 Design 2 Develop 3 Deploy 4 Publish 5 Use 6 Analyze 7 Update Security Checks Runscope Kibana