© 2019 Autodesk, Inc.
Building Forge API Platform
Monmohan Singh
Architect, Forge Platform| https://github.com/monmohan
What is Autodesk Forge?
To develop customized,
seamless experiences
for the future of making
In architecture,
engineering,
construction, and
manufacturing space
Forge: Autodesk developer Platform
place this copy with image credit when applicable.
3rd Party DevelopersCustomersAutodesk Apps
SERVICES
DATA
# of API calls?
~ 10bn/ month
# of Services
161
Third Party
Traffic
Small but
growing
Overview
forge.autodesk.com/customers
Replace this copy with image credit when applicable.
APIs : https://forge.autodesk.com/
What did we learn in our journey to build
these APIs?
Consistency
and
Intuitiveness
When we started
 Disjoint experience across different APIs
 So, there were APIs like
POST calls for Getting a resource(s)
Endpoints like “/delete”, “/delete2”.. And in some cases, what I call
”DoWork” API
Some APIs always return 200 Status
API experience designed in Silos by teams
Then…
 Some teams picked JSON API (https://jsonapi.org/) as standard, BUT we found that..
 The API was consistent, but non-intuitive and verbose.
 Developer feedback: Hard to understand for a human
Finally…
 Platform wide REST API standard
 Documented and Published
 Best practices adopted from players like Microsoft (https://github.com/microsoft/api-
guidelines) , AWS and others like PayPal (https://github.com/paypal/api-standards)
SDK
 Common resiliency patterns for clients
 Retries with exponential backoff
 Circuit breakers (on 429 status for example)
 Common Entity model
 Performance optimizations like caching (e.g. tokens)
 Non-Trivial to implement
 SDKs make the developer experience better for clients
 Prevent un-intentional DOS by using proper resiliency patterns
 AWS SDKs are great example
 We are getting there - Forge SDKs https://github.com/Autodesk-Forge
SDK
Developer
Experience
 Make it easy for developers to adopt
 Getting started guides, documentation,
samples , solutions
 Don’t differentiate between Internal vs.
External consumers
 Invest in success of your customers
 Forge Developer advocates do a great
job in spreading the message
 Developer meetups
 Get feedback from customers
Developer Experience
Tidbits
Tidbits
 Think about solutions that Customers will build
 Have APIs to create/write data?
 What about change notification?
 Reliability is number one feature
 SLO/SLA
 Using Edge Proxy for rate limits, spike prevention etc
 API Days talk about this : https://bit.ly/2Xaztqo
 Application vs. Users
 2L/3L
 Proper authorization boundaries
Autodesk and the Autodesk logo are registered trademarks or trademarks of Autodesk, Inc., and/or its subsidiaries and/or affiliates in the USA and/or other countries. All other brand names, product names, or trademarks belong to their respective holders.
Autodesk reserves the right to alter product and services offerings, and specifications and pricing at any time without notice, and is not responsible for typographical or graphical errors that may appear in this document.
© 2019 Autodesk. All rights reserved.

API Craft : Building Autodesk Forge APIs

  • 1.
    © 2019 Autodesk,Inc. Building Forge API Platform Monmohan Singh Architect, Forge Platform| https://github.com/monmohan
  • 2.
  • 3.
    To develop customized, seamlessexperiences for the future of making In architecture, engineering, construction, and manufacturing space Forge: Autodesk developer Platform
  • 4.
    place this copywith image credit when applicable. 3rd Party DevelopersCustomersAutodesk Apps SERVICES DATA # of API calls? ~ 10bn/ month # of Services 161 Third Party Traffic Small but growing Overview
  • 5.
  • 6.
    Replace this copywith image credit when applicable. APIs : https://forge.autodesk.com/
  • 8.
    What did welearn in our journey to build these APIs?
  • 9.
  • 10.
    When we started Disjoint experience across different APIs  So, there were APIs like POST calls for Getting a resource(s) Endpoints like “/delete”, “/delete2”.. And in some cases, what I call ”DoWork” API Some APIs always return 200 Status API experience designed in Silos by teams
  • 11.
    Then…  Some teamspicked JSON API (https://jsonapi.org/) as standard, BUT we found that..  The API was consistent, but non-intuitive and verbose.  Developer feedback: Hard to understand for a human Finally…  Platform wide REST API standard  Documented and Published  Best practices adopted from players like Microsoft (https://github.com/microsoft/api- guidelines) , AWS and others like PayPal (https://github.com/paypal/api-standards)
  • 12.
  • 13.
     Common resiliencypatterns for clients  Retries with exponential backoff  Circuit breakers (on 429 status for example)  Common Entity model  Performance optimizations like caching (e.g. tokens)  Non-Trivial to implement  SDKs make the developer experience better for clients  Prevent un-intentional DOS by using proper resiliency patterns  AWS SDKs are great example  We are getting there - Forge SDKs https://github.com/Autodesk-Forge SDK
  • 14.
  • 15.
     Make iteasy for developers to adopt  Getting started guides, documentation, samples , solutions  Don’t differentiate between Internal vs. External consumers  Invest in success of your customers  Forge Developer advocates do a great job in spreading the message  Developer meetups  Get feedback from customers Developer Experience
  • 16.
  • 17.
    Tidbits  Think aboutsolutions that Customers will build  Have APIs to create/write data?  What about change notification?  Reliability is number one feature  SLO/SLA  Using Edge Proxy for rate limits, spike prevention etc  API Days talk about this : https://bit.ly/2Xaztqo  Application vs. Users  2L/3L  Proper authorization boundaries
  • 18.
    Autodesk and theAutodesk logo are registered trademarks or trademarks of Autodesk, Inc., and/or its subsidiaries and/or affiliates in the USA and/or other countries. All other brand names, product names, or trademarks belong to their respective holders. Autodesk reserves the right to alter product and services offerings, and specifications and pricing at any time without notice, and is not responsible for typographical or graphical errors that may appear in this document. © 2019 Autodesk. All rights reserved.

Editor's Notes

  • #5 Autodesk uses this platform build its own SaaS products (such as Fusion Team, BIM 360 Docs, etc.) Web service APIs you can use to extend and integrate Autodesk web applications into your workflows. A set of components from our technology stack that you can use in your own web applications.
  • #7 Overview of the APIs