RESTful Web API

27
March 2017 RESTFUL WEB API

Transcript of RESTful Web API

Page 1: RESTful Web API

March 2017

RESTFUL WEB API

Page 2: RESTful Web API

March 2017

FARAMARZSALEHPOURBack-End Developer at ParsFiberNet

@fsalehpour

Page 3: RESTful Web API

March 2017

WHAT IS WEB API?

Architecture: Client/ServerProtocol: HTTP

Page 4: RESTful Web API

March 2017

WHY SHALL WE USE WEB APIS?

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

Page 5: RESTful Web API

March 2017

USE CASE EXAMPLE

3rd PartyService

Web API

Web App

Android

iOS

Page 6: RESTful Web API

March 2017

RESTRepresentational State Transfer

Page 7: RESTful Web API

March 2017

REST - PROPERTIES

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

Page 8: RESTful Web API

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

Page 9: RESTful Web API

March 2017

REST - RESOURCES

Page 10: RESTful Web API

March 2017

REST - PRESENTATION

Page 11: RESTful Web API

March 2017

REST - TRANSFER

HTTP: HyperText Transfer Protocol

Messages: Request/Response

Page 12: RESTful Web API

March 2017

REST - TRANSFERHTTP | Request

Head

Body

Method

Page 13: RESTful Web API

March 2017

REST - TRANSFERHTTP | Response

Head

Body

Status

Page 14: RESTful Web API

March 2017

REST - SECURITY

Page 15: RESTful Web API

March 2017

REST - IMPLEMENTATIONUNIFORM INTERFACE - URL SCHEME

Resource name car

Resource URI /cars

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

Page 16: RESTful Web API

March 2017

REST - IMPLEMENTATIONUNIFORM INTERFACE - HTTP VERBS

Create POST

Read GET

Update PUT

Delete DELETE

Page 17: RESTful Web API

March 2017

REST - IMPLEMENTATIONSECURITY

• Token based authentication• Header

Authorization: Bearer taw0ws5Kjvelc9z0RCfyfNrVWEqyFBNv3vN53HWk

Page 18: RESTful Web API

March 2017

REST - IMPLEMENTATIONRESPONSE - SUCCESS

200 OK

201 CREATED

202 ACCEPTED

204 NO CONTENT

206 PARTIAL CONTENT

Page 19: RESTful Web API

March 2017

REST - IMPLEMENTATIONRESPONSE - CLIENT SIDE ERROR

400 BAD REQUEST

401 UNAUTHORIZED

403 FORBIDDEN

404 NOT FOUND

405 METHOD NOT ALLOWED

406 NOT ACCEPTABLE

Page 20: RESTful Web API

March 2017

REST - IMPLEMENTATIONRESPONSE - SERVER SIDE ERROR

500 INTERNAL SERVER ERROR

503 SERVICE UNAVAILABLE

Page 21: RESTful Web API

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”}

Page 22: RESTful Web API

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”}]

Page 23: RESTful Web API

March 2017

REST - IMPLEMENTATIONGET A SPECIFIC RESOURCE

Method GET

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

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

Page 24: RESTful Web API

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”}

Page 25: RESTful Web API

March 2017

REST - IMPLEMENTATIONUNIFORM INTERFACE - DELETE A SPECIFIC

RESOURCE

Method DELETE

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

Response 200 OK

Page 26: RESTful Web API

March 2017

Q & A

Page 27: RESTful Web API

March 2017

THANK YOU