Understanding REST APIs in 5 Simple Steps

Post on 22-Jan-2017

40 views 4 download

Transcript of Understanding REST APIs in 5 Simple Steps

ParisJS Meetup December 3rd, 2016

Follow me on Twitter and/or tweet at me. @tessamero

By Tessa Mero

Understanding REST APIs in 5 Simple Steps

2© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

REST != $this

3© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

“It’s a way for two pieces of software to talk to each other”

Application Programming Interface

4© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

STEP 1: Understanding the Purpose of APIs

5© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

Why are APIs so Important?

6© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

API Growth from 2000 to 2016

2000 2005 2007 2009 2011 2013 2015 20160

5000

10000

15000

20000

25000

30000

35000API's

API's

Source: 2016 data from nordicapis.com. 2005-2015 data from rubenverborgh.github.io and 2000-2004 data from blog.cutter.com

7© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

An API is like …

An API (Application Programming Interface) is best thought of as a contract provided by one piece of computer software to another.

8© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

APIs help developers create apps that benefit the end user.

Yelp asks for Map Data

Google Maps returns map data

via API

Users sees list of

restaurants close to

them

9© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

STEP 2: Learn what REST is

10© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

A REST API defines a set of functions which developers can perform requests and receive responses via HTTP protocol such as GET and POST.

11© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

REST is best explained as a way to talk to other machines through the server with an HTTP Protocol

Using Verbs (actions) and Nouns (items)

12© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

STEP 3: Know What Request and Responses are

13© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

13

View a Web Page

Presentation ID

14© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

14

View a Web Page

Presentation ID

Request GET /index.htm HTTP/1.1

ResponseHTTP 200 OK

<html>

15© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

REST APIs use Request and Response too

16© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

16

Get Data using an API (Spark)

Presentation ID

17© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

17

Get Data using an API – Response!

Presentation ID

Request GET /rooms

ResponseHTTP 200 OK

{json data}

API Consumer API Provider

18© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

List of Verbs!

19© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

STEP 4: Documentation is Your Dictionary

20© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

API Reference for Rooms (Verbs and Nouns)

21© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

Request Parameters for “MESSAGES”

22© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

STEP 5: Learn How to Use Debug/Test Tools for APIs

23© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

Tools to Debug/Test http://tiny.cc/60tools

• Webhook Debugging (RequestBin formerly requestbin.org…)• Webhook Utilities (Torpio…)• Local Tunneling (ngrok...)• API Monitoring (Runscope...)• Response Mocking (mocky.io...) • JSON Utilities (JSONFormat...)• OAUTH Utilities (oauth.io...)• API Directories (APIS.io, ProgrammableWeb...)• API Testing (Runscope Radar...)• Load Testing (loader.io...)• GUI HTTP Clients (POSTMAN...)

24© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

POSTMAN!!!!!

25© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

25

method

url

requestheaders

status code

response headers

content-type

responsebody

query parameters

26© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

26

Add JSON to the Body in POSTMAN

27© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

Summary:

1. You Understand the Purpose2. You Know what REST is3. Request & Response – Makes sense4. Documentation – Live by it.5. Debugging&Test Tools – Prevent headaches

28© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

OUI!!!!!!!!

29© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

Thank You

@tessamerotessamero@gmail.com

http://www.slideshare.net/Tessa99