@LukasRosenstock
To SDK … or
not to SDK?
API abbr. Application Programming Interface n.
A remote interface available over HTTP(S),
designed in a REST or RPC style.
SDK abbr. Software Development Kit n.
A software library with the primary purpose
of wrapping an API for a specific language.
Server-2-Server Integrations
Server
Client
(web/native)
Third Party
Service
SDK
API
API
Interaction time :)
Why this talk?
Let‘s integrate Twilio SMS ...
… or like this:
Are SDKs really necessary?
And if not, why do I feel API providers force them on me?
For API Consumers
“SDKs introduce a complexity
cost over the lifetime of your
app that outweigh the gain of
not having to rewrite the code."
John Sheehan, Runscope (CA Inc.)
For API Providers
●
SDKs are additional effort →
– You can‘t have SDKs without APIs!
●
Is it worth it?
Coming up:
●
Advantages of SDKs
●
SDK Strategy
– Four Patterns
– Suggested Approach
●
Good SDK Design
●
Documenting APIs & SDKs
– Approahches
– Top API Provider Portal Showcase
●
Conclusion
Advantages of SDKs (1)
●
Beginner Friendly
– Easier to support!
Advantages of SDKs (2)
●
Client-side logic
– Caching
– Retrying
– Validation
– Idempotency
●
→ Robustness
●
→ Less Load
Advantages of SDKs (3)
●
Insights into API
usage from different
languages
– User Agent
– Monitoring
●
Opportunity to
connect with the
programming
community
Definitions from discussions
at APIStrat conference, 2016
SDK Strategy: Four Patterns
●
Provider-supported
●
Community-contributed
●
Consumer-driven
●
HTTP is the SDK
SDK Strategy: Suggested Approach
Design a great API
OpenAPI
Document it well
Release your spec
Embrace community SDKs
Release your own SDKs
TIME
Interlude
„Whatever people
can pull down from their
favorite package manager
is their developer experience.“
Cristiano Betta at APItheDocs
December 2017 in Amsterdam
Good SDK Design (1)
●
API Design comes first
– Add value over the API
– SDKs can‘t cover up bad APIs
●
Open Source is a MUST
●
Make SDK development a part of API testing
Good SDK Design (2)
Respect your target platform‘s approach first,
consistency within your API second.
Interlude
●
Can I auto-generated my SDKs?
– (+) Achieves presence and standardized
approach
– (-) No business-specific value-add
API & SDK Documentation
●
API-first, SDK-second
●
SDK-first, API-second
●
Integrated
●
Tutorials vs. Reference – different approaches
– Consistency?
Top API Provider Showcase
Conclusion
●
Provide SDKs if you can and believe there‘s
additional value or you want to support
beginners.
●
Don‘t forget the API over SDKs! Design both
well and respect them in your portal.

To SDK or not to SDK?