RESTful Web API

Post on 15-Apr-2017

44 views 8 download

Transcript of RESTful Web API

March 2017

RESTFUL WEB API

March 2017

FARAMARZSALEHPOURBack-End Developer at ParsFiberNet

@fsalehpour

March 2017

WHAT IS WEB API?

Architecture: Client/ServerProtocol: HTTP

March 2017

WHY SHALL WE USE WEB APIS?

• Network based systems & services• Web Applications (SPA)• Mobile Apps• Integration• B2B

March 2017

USE CASE EXAMPLE

3rd PartyService

Web API

Web App

Android

iOS

March 2017

RESTRepresentational State Transfer

March 2017

REST - PROPERTIES

• Client/Server architecture• Stateless• Cacheable• Uniform Interface

March 2017

REST - RESOURCES

A resource is an object with a type, associated data, relationships to other resources, and a set

of methods that operate on it

March 2017

REST - RESOURCES

March 2017

REST - PRESENTATION

March 2017

REST - TRANSFER

HTTP: HyperText Transfer Protocol

Messages: Request/Response

March 2017

REST - TRANSFERHTTP | Request

Head

Body

Method

March 2017

REST - TRANSFERHTTP | Response

Head

Body

Status

March 2017

REST - SECURITY

March 2017

REST - IMPLEMENTATIONUNIFORM INTERFACE - URL SCHEME

Resource name car

Resource URI /cars

Resource URL https://www.example.com/cars

March 2017

REST - IMPLEMENTATIONUNIFORM INTERFACE - HTTP VERBS

Create POST

Read GET

Update PUT

Delete DELETE

March 2017

REST - IMPLEMENTATIONSECURITY

• Token based authentication• Header

Authorization: Bearer taw0ws5Kjvelc9z0RCfyfNrVWEqyFBNv3vN53HWk

March 2017

REST - IMPLEMENTATIONRESPONSE - SUCCESS

200 OK

201 CREATED

202 ACCEPTED

204 NO CONTENT

206 PARTIAL CONTENT

March 2017

REST - IMPLEMENTATIONRESPONSE - CLIENT SIDE ERROR

400 BAD REQUEST

401 UNAUTHORIZED

403 FORBIDDEN

404 NOT FOUND

405 METHOD NOT ALLOWED

406 NOT ACCEPTABLE

March 2017

REST - IMPLEMENTATIONRESPONSE - SERVER SIDE ERROR

500 INTERNAL SERVER ERROR

503 SERVICE UNAVAILABLE

March 2017

REST - IMPLEMENTATIONCREATE A NEW RESOURCE

Method POST

URL https://api.example.com/cars

Body {“brand”:”IKCO”, “model”:”Pars”}

Response 201 CREATED{“id”: 1, “brand”: “IKCO”, “model”: “Pars”}

March 2017

REST - IMPLEMENTATIONGET ALL RESOURCES

Method GET

URL https://api.example.com/cars

Response200 OK[{“id”: 1, “brand”: “IKCO”, “model”: “Pars”}, {“id”: 2, “brand”: “Saipa”, “model”: “Pride”}]

March 2017

REST - IMPLEMENTATIONGET A SPECIFIC RESOURCE

Method GET

URL https://api.example.com/cars/2

Response200 OK{“id”: 2, “brand”: “Saipa”, “model”: “Pride”}

March 2017

REST - IMPLEMENTATIONUPDATE A SPECIFIC RESOURCE

Method PUT

URL https://api.example.com/cars/2

Body {“brand”:”Saipa”, “model”:”141”}

Response 200 OK{“id”: 2, “brand”:”Saipa”, “model”:”141”}

March 2017

REST - IMPLEMENTATIONUNIFORM INTERFACE - DELETE A SPECIFIC

RESOURCE

Method DELETE

URL https://api.example.com/cars/2

Response 200 OK

March 2017

Q & A

March 2017

THANK YOU