Reusable APIs

Post on 24-May-2015

11.333 views 2 download

Tags:

description

We need to create more reusable APIs, fewer "snowflakes" and better machine-readable APIs and descriptions. To this end, Mike Amundsen, Principal API Architect offers his "Top Ten things we need to STOP doing."

Transcript of Reusable APIs

Reusable APIsMike Amundsen

@mamund@Layer7 @CAInc

We need more reusable APIs

Too many "snowflake" APIsToo few generic descriptions of APIsToo often we code from "zero" every time

We can do better

Top 10 things we should STOP doing

Stop mapping semantics to protocols

Map semantics to messages instead.

Stop hiding update & query rules in human-readable documentation

Use inline hypermedia controls instead.

Stop requiring devs to be protocol gurus

Provide "accommodations" like SDKs when appropriate

Stop making everyone use the same object model

Share message models, not object models

Stop describing services as single instances

Describe services as abstract classes.

Stop baking workflow into client code

Put workflow in the message via hypermedia

Stop breaking others people's code

Take the "no breaking changes" pledge

Take the "no breaking changes" pledge

Stop making client devs re-code & re-deploy at random

Use "dark release" to allow client devs to update on their own schedule

Stop adding single points of failure

Distribute not just storage, but also execution.

Stop pretending the Web defies the laws of probability and physics

We can do better10. Map semantics to messages

9. Use inline hypermedia

8. Provide SDKs when

appropriate

7. Share messages, not objects

6. Describe services as

abstract classes

5. Put workflow in messages

4. Take the "no breaking

changes" pledge

3. Use "dark release"

2. Distribute storage and

execution

1. Obey the laws of

probability and physics

None of this is complicatedSome of it is hard.

Let's talk aboutReusable APIs

Mike Amundsen@mamund

@Layer7 @CAIncg.mamund.com/top10stop