API Athens Meetup - API standards 22.03.2016

26
APIs.guru APIs.guru Wikipedia for API Wikipedia for Web APIs

Transcript of API Athens Meetup - API standards 22.03.2016

Page 1: API Athens Meetup - API standards 22.03.2016

APIs.guru

APIs.guru

Wikipedia for APIWikipedia for Web APIs

Page 2: API Athens Meetup - API standards 22.03.2016

Developer-driven adoption

Page 3: API Athens Meetup - API standards 22.03.2016

iPaaS

Page 4: API Athens Meetup - API standards 22.03.2016

Consumer products

Page 5: API Athens Meetup - API standards 22.03.2016

Give me more API!

Page 6: API Athens Meetup - API standards 22.03.2016

Hold a minute … or month

Page 7: API Athens Meetup - API standards 22.03.2016

API growth

Page 8: API Athens Meetup - API standards 22.03.2016

2 days 1 days 3 days 3 days

Standard approach

Page 9: API Athens Meetup - API standards 22.03.2016

Human-readable docsMethod

characteristics

Arguments

Response description

MethodMethod description

required?

Argument type

Response type

Response description

Response description

Page 10: API Athens Meetup - API standards 22.03.2016

Machine-readable docs

API versionSupported protocols

Method

Method description

Link to response description

required?

Argument type

API characteristics

Method characteristics

Response

Arguments

Page 11: API Athens Meetup - API standards 22.03.2016

Would it be nice?

All APIs descriptions in one place

Documented in one format

Anyone can add/improve API description

Page 12: API Athens Meetup - API standards 22.03.2016

What APIs.guru do?

Filter out private and non-reliable APIs.

Convert different formats into Swagger 2.0

Fix mistakes, ~80% of spec have them

Add additional data, like: logo, categories, …

Update specs on daily basis

Page 13: API Athens Meetup - API standards 22.03.2016

Contribution process

ReviewValidation script

API ownerPull requests

Contributors

API

Page 14: API Athens Meetup - API standards 22.03.2016

Any-API.com

Page 15: API Athens Meetup - API standards 22.03.2016

SDKs.io

Page 16: API Athens Meetup - API standards 22.03.2016

CenitSaaS.com

Page 17: API Athens Meetup - API standards 22.03.2016

commandcar

Page 18: API Athens Meetup - API standards 22.03.2016

DataFire.io

Page 19: API Athens Meetup - API standards 22.03.2016

Why not Hypermedia?

Cool technology, but doesn’t help iPaaS:

Can access metadata only after first call

Metadata only for particular entities

Require API owner to change implementation

Page 20: API Athens Meetup - API standards 22.03.2016

Far Far Future: Synergy

Page 21: API Athens Meetup - API standards 22.03.2016

Data incompatibility

{ “First name”: “John”, “Surname”: “Smith”}

{ “Name”: “John”, “Surname”: “Smith”}

{ “Full name”: “John Smith”}

Page 22: API Athens Meetup - API standards 22.03.2016

Schema incompatibility{ “properties”: { “First name”: { “type”: “string” }, “Surname”: { “type”: “string” } }}

{ “properties”: { “Name”: { “type”: “string” }, “Surname”: { “type”: “string” } }}{

“properties”: { “Full name”: { “type”: “string” } }}

Page 23: API Athens Meetup - API standards 22.03.2016

Stage 1: Scalar types

{ “properties”: { “First name”: { “type”: “string” } “Surname”: { “type”: “string” } }}

{ “properties”: { “First name”: { “$ref”: “http://apis.guru/types/name#” } “Surname”: { “$ref”: “http://apis.guru/types/surname#” } }}

Page 24: API Athens Meetup - API standards 22.03.2016

Stage 2: Complex types

{ “properties”: { “First name”: { “$ref”: “http://apis.guru/types/name#” }, “Surname”: { “$ref”: “http://apis.guru/types/surname#” } }}

{ “$ref”: “http://apis.guru/types/fullname/15#”}

Page 25: API Athens Meetup - API standards 22.03.2016

Stage 3: type converters

function (data) { return { “Full name”: data[“First name”] + data[“Surname”] };}

{ “First name”: “John” “Surname”: “Smith”}

{ “Full name”: “John Smith”}

Page 26: API Athens Meetup - API standards 22.03.2016

APIs.guruJoin the movement

APIs.guru

[email protected] ivangon4arovhttps://github.com/APIs-guru/api-models

@APIs_guru