the api facade pattern: overview - episode 1

Post on 10-May-2015

13.724 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

API Façade: OverviewEpisode 1Webinar ShortsMarch 2012 Series

Brian Mulloy@landlessness

Apigee@apigee

groups.google.com/group/api-craft

youtube.com/apigee

IRC Channel#api-crafton freenode

New!

Episode 1The API Facade: OverviewTuesday, March 6th

Episode 2The API Facade: Common PatternsTuesday, March 13th

Episode 3The API Facade: TechnologyTuesday, March 20th

Episode 4The API Facade: PeopleTuesday, March 27th

Webinar Shorts - March 2012 New!

Episode 1 Topics

• The Goal• The Problem• The Anti-Patterns• The Solution• How To• Benefits

The Goal

AppUser

APITeam

APIAppWorld of

APIsApp

StoreInternalSystems

AppDeveloper

AppUser

APITeam

APIAppWorld of

APIsApp

StoreInternalSystems

AppDeveloper

The Problem

System of RecordVirtues• Stable• Dependable• Runs the BusinessVices• Legacy Technology• Interdependencies• Slowly Changing

Big System

Big System

DBContent

Management SOAP JDBC RSS

The Anti-Patterns

Anti-pattern #1Build UpVirtues• Version 1• Quick• Understood by

Internal DevsVices• Fine-grained• Confusing to

App Devs• Inflexible

Big System

Expose Objects

XML

Anti-pattern #2Standards CommitteeVirtues• Version 1• Sense of Unification• ComprehensiveVices• Slow• Lack of Adherence• Mediocre or

Multiple Designs• Subject to

InterpretationBig System

Expose Objects

XML

DB

Expose Tables

XML

Content Management

Expose RSS

XML

StandardsDoc

Anti-pattern #3Copy CatVirtues• Version 1• Quick• App Dev FamiliarityVices• Not Differentiated• Value Not

Leveraged

Big System

Expose Objects

XML

DB

Expose Tables

XML

Content Management

Expose RSS

XML

Competitor’sAPI Docs

The Solution

Engineers

API Team

ProductManager

Operations ArchitectQACommunityManager

API Façade

Big System

DBContent

Management SOAP JDBC RSS

API Facade

AppApp

Developer

Use the façade pattern when you want to provide a simple interface to a complex subsystem. Subsystems often get more complex as they evolve.

How To

1. Design the Ideal API2. Implement Design with Stubs3. Mediate between Façade and Systems

RSSObjects

XML

App

1. Build up from systems of record

1.

Big System

DBContent

Management SOAP JDBC RSS

Tables

XML

RSS

XMLXML

Tables

XML

RSS

XML

One Big Problem

1. Design the Ideal API2. Implement Design with Stubs as Façade3. Mediate between Façade and SystemsApp

Developer

Mediate

API Facade

1.

2.

3.

Big System

DBContent

Management SOAP JDBC RSS

Ideal Design

Three Small Problems

• Handle Common Patterns• Authenticate & Authorize• Version• Store Data for Analysis

Façade as Gateway

The Benefits

Internal Partners Customers Open

Adapt to Use Cases

AppUser

APITeam

APIAppWorld of

APIsApp

StoreInternalSystems

AppDeveloper

Keep Pace with Developers

DBContent

Management SOAP JDBC

API Facade

Extensible AND Consistent API

Internal

Partners

Customers

Open

Enterprise API Engine

Questions?

THANK YOUSubscribe to API webinars at:

youtube.com/apigee

THANK YOUIRC#api-crafton freenode

THANK YOUQuestions and ideas to:

groups.google.com/group/api-craft

THANK YOUContact me at:

@landlessnessbrian@apigee.com

top related