Top Banner
March 2017 RESTFUL WEB API
27

RESTful Web API

Apr 15, 2017

Download

Software

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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