Building an Accessible
API Spec with Traditional
Engineering Teams
Griffin Solot-Kehl
Developer Advocate, Dolby.io
@WingofaGriffin
1
© 2 0 2 0 D O L B Y | C O N F I D E N T I A L
© 2 0 2 1 D O L B Y
Hi, I’m Griffin
• Dolby.io
• Media enhancement and analysis APIs
• Real time communications APIs
• Developer Advocate in REST APIs >3 years
• From baby startups to big corporations
• Focus on API integrations
• Spent a LOT of time on docs pages
2
@WINGOFAGRIFFIN
© 2 0 2 1 D O L B Y
3
You need to work on
your API Spec.
© 2 0 2 1 D O L B Y
@WINGOFAGRIFFIN
Common Issues:
• Unclear/Out of Date documentation
• Hard to update existing OpenAPI Spec
• Inconsistent parameters across endpoints
• Slow process to communicate changes
• Internally
• Externally
• Less of an issue with API first development
4
@WINGOFAGRIFFIN
© 2 0 2 1 D O L B Y
5
What can we do?
© 2 0 2 1 D O L B Y
@WINGOFAGRIFFIN
Keeping a Modular Spec
• Don’t rewrite identical code
• $ref objects
• Identify patterns in new endpoints
• Use helper files
• “Global” variables to reuse
• Document what they do!
• Comment often!
swagger.io/docs/specification/using-ref/
6
@WINGOFAGRIFFIN
© 2 0 2 1 D O L B Y
Authentication
• Security vs. Simplicity
• OAuth2 Tokens
• Key Management
• Rotation tools
• Have a “validate” API endpoint
7
© 2 0 2 1 D O L B Y
@WINGOFAGRIFFIN
Keep it Simple (Stupid)
• Clear how to create, clear what the response is
• Expectations between user levels
• Label and Organize JSON well
• Encourage use of tools like jq
• Consistent Parameters
8
© 2 0 2 1 D O L B Y
@WINGOFAGRIFFIN
• Previous Employers
• Internal Docs
• Existing 3rd party APIs in stack
• Competitor Docs
Examples of Quality Docs
9
@WINGOFAGRIFFIN
© 2 0 2 1 D O L B Y
Documentation
• Verify valid OpenAPI Spec
• Readme.com, Redoc.ly, DapperDox,
WidderShins, SwaggerUI, etc.
• Ensure public facing endpoints work!
• Autogenerate Sample Code
• Make calls within website
10
@WINGOFAGRIFFIN
© 2 0 2 1 D O L B Y
Technical Debt
• Hard to change existing infrastructure
• But it will get even harder as you let it accumulate
• Turns off new users
• Existing customers will be poached
• Security vulnerabilities
11
© 2 0 2 1 D O L B Y
@WINGOFAGRIFFIN
Think Agile!
• Use Project Management techniques to get user stories
• Scrum Masters can be useful!
• As a ___ I want to ___ so I can ___
• Create goals to chuck out the technical debt
• Divide tasks into subcategories for small wins over a long period of time
12
© 2 0 2 1 D O L B Y
@WINGOFAGRIFFIN
Dogfooding!
• Make engineers use the API!
• Internal tools
• Other teams’ feedback
• Utilize the DevRel team (if applicable)
• Gather trusted user feedback
• Addition to automated testing
13
@WINGOFAGRIFFIN
© 2 0 2 1 D O L B Y
Example: Dolby.io + Box
• Enhance API used on every audio project
• Upload to Box, enhance inside
• Videos, podcasts, audio files
• Python, JS, Shell, etc. options as alternatives
• Also see Transcode, Mastering, etc.
14
@WINGOFAGRIFFIN
© 2 0 2 1 D O L B Y
Example: Dolby.io CAPI
• Communications API used for Video Calls
• Expose average user workflow
• Find common use cases
• Add “nice to have” features
• Devs get curious when quirks happen live
15
@WINGOFAGRIFFIN
© 2 0 2 1 D O L B Y
16
Everything is a
Work in Progress
© 2 0 2 1 D O L B Y
@WINGOFAGRIFFIN
17
Constant
Communication
© 2 0 2 1 D O L B Y
@WINGOFAGRIFFIN
Thank you!
@WINGOFAGRIFFIN
DOLBY.IO
18
© 2 0 2 1 D O L B Y
© 2 0 2 1 D O L B Y
@WINGOFAGRIFFIN

apidays LIVE Paris 2021 - Building an Accessible API Spec with Traditional Engineering Teams by Griffin Solot-Kehl, Dolby Laboratories

  • 1.
    Building an Accessible APISpec with Traditional Engineering Teams Griffin Solot-Kehl Developer Advocate, Dolby.io @WingofaGriffin 1 © 2 0 2 0 D O L B Y | C O N F I D E N T I A L © 2 0 2 1 D O L B Y
  • 2.
    Hi, I’m Griffin •Dolby.io • Media enhancement and analysis APIs • Real time communications APIs • Developer Advocate in REST APIs >3 years • From baby startups to big corporations • Focus on API integrations • Spent a LOT of time on docs pages 2 @WINGOFAGRIFFIN © 2 0 2 1 D O L B Y
  • 3.
    3 You need towork on your API Spec. © 2 0 2 1 D O L B Y @WINGOFAGRIFFIN
  • 4.
    Common Issues: • Unclear/Outof Date documentation • Hard to update existing OpenAPI Spec • Inconsistent parameters across endpoints • Slow process to communicate changes • Internally • Externally • Less of an issue with API first development 4 @WINGOFAGRIFFIN © 2 0 2 1 D O L B Y
  • 5.
    5 What can wedo? © 2 0 2 1 D O L B Y @WINGOFAGRIFFIN
  • 6.
    Keeping a ModularSpec • Don’t rewrite identical code • $ref objects • Identify patterns in new endpoints • Use helper files • “Global” variables to reuse • Document what they do! • Comment often! swagger.io/docs/specification/using-ref/ 6 @WINGOFAGRIFFIN © 2 0 2 1 D O L B Y
  • 7.
    Authentication • Security vs.Simplicity • OAuth2 Tokens • Key Management • Rotation tools • Have a “validate” API endpoint 7 © 2 0 2 1 D O L B Y @WINGOFAGRIFFIN
  • 8.
    Keep it Simple(Stupid) • Clear how to create, clear what the response is • Expectations between user levels • Label and Organize JSON well • Encourage use of tools like jq • Consistent Parameters 8 © 2 0 2 1 D O L B Y @WINGOFAGRIFFIN
  • 9.
    • Previous Employers •Internal Docs • Existing 3rd party APIs in stack • Competitor Docs Examples of Quality Docs 9 @WINGOFAGRIFFIN © 2 0 2 1 D O L B Y
  • 10.
    Documentation • Verify validOpenAPI Spec • Readme.com, Redoc.ly, DapperDox, WidderShins, SwaggerUI, etc. • Ensure public facing endpoints work! • Autogenerate Sample Code • Make calls within website 10 @WINGOFAGRIFFIN © 2 0 2 1 D O L B Y
  • 11.
    Technical Debt • Hardto change existing infrastructure • But it will get even harder as you let it accumulate • Turns off new users • Existing customers will be poached • Security vulnerabilities 11 © 2 0 2 1 D O L B Y @WINGOFAGRIFFIN
  • 12.
    Think Agile! • UseProject Management techniques to get user stories • Scrum Masters can be useful! • As a ___ I want to ___ so I can ___ • Create goals to chuck out the technical debt • Divide tasks into subcategories for small wins over a long period of time 12 © 2 0 2 1 D O L B Y @WINGOFAGRIFFIN
  • 13.
    Dogfooding! • Make engineersuse the API! • Internal tools • Other teams’ feedback • Utilize the DevRel team (if applicable) • Gather trusted user feedback • Addition to automated testing 13 @WINGOFAGRIFFIN © 2 0 2 1 D O L B Y
  • 14.
    Example: Dolby.io +Box • Enhance API used on every audio project • Upload to Box, enhance inside • Videos, podcasts, audio files • Python, JS, Shell, etc. options as alternatives • Also see Transcode, Mastering, etc. 14 @WINGOFAGRIFFIN © 2 0 2 1 D O L B Y
  • 15.
    Example: Dolby.io CAPI •Communications API used for Video Calls • Expose average user workflow • Find common use cases • Add “nice to have” features • Devs get curious when quirks happen live 15 @WINGOFAGRIFFIN © 2 0 2 1 D O L B Y
  • 16.
    16 Everything is a Workin Progress © 2 0 2 1 D O L B Y @WINGOFAGRIFFIN
  • 17.
    17 Constant Communication © 2 02 1 D O L B Y @WINGOFAGRIFFIN
  • 18.
  • 19.
    © 2 02 1 D O L B Y @WINGOFAGRIFFIN