by Sajeetharan |  @kokkisajee

Leverage POSTMAN 

TO BUILD EFFICIENT GRAPHQL APIS

Leverage POSTMAN 

TO BUILD EFFICIENT GRAPHQL APIS

Postman API DAY

In a nutshell

Communities

Social Developer

Recognitions

Product Manager @Microsoft

First GDE,MCT and MVP from SL

Top stackoverflow contributor

 

I'm Sajeetharan Sinnathurai

@sajeetharan
@kokkisajee
@sajeetharan
@sajeetharan

Agenda

👍An “Intermediate session"

 

👍It won’t teach you everything,  But it will help you learn what you need to know to get started

 

 

 

 

👍Be ready to  ask questions

 

👍Celebrate together!

Introduction to API, GraphQL concepts

Get our hands dirty

Let's start with a question

@kokkisajee

Internet of OLD

Server

1. Request

2. HTML

@kokkisajee

The new Era

Server

1. Request

2. HTML

Many more

@kokkisajee

State of APIS

@kokkisajee

Common problems with REST

Issue#1 Multiple round trips

Issue#2 Over-fetching of data

While requesting nested data, we often have to make several round trips or define an entirely newend point

Wouldn't it be nice if client receives only the data that it requires?

Issue#3 Absence of  Self-Documentation

The onus lies with the developer to document the API and allow exploration and discovery of your APIs.

@kokkisajee

GraphQL - a new way to interact with your data

@kokkisajee

GraphQL in a nuthshell

http://graphql.org/

@kokkisajee

GET /movies/1

{
  "title": "The Greatest Showman",
  "director": {
    "firstName": "Michael",
    "lastName": "Gracey"
  }
  // ... more fields
}

@kokkisajee

GET /movies/1

{
  "title": "The Greatest Showman",
  "directorId": 1
  // ... more fields
}


GET /directors/1

{
  "firstName": "Michael",
  "lastName": "Gracey"
  // ... more fields
}

@kokkisajee

GET /graphql?query={ movie(id: "1") { title, author { firstName } } }

{
  "title": "The Greatest Showman",
  "director": {
    "firstName": "Michael"
  }
}

@kokkisajee

In REST, the server is decides the structure of the data

In graphQL, the client does

@kokkisajee

Query

Mutation

Subscription

Basic concepts

@kokkisajee

@kokkisajee

query GET_MAIN_DATA {
  me {














  }
}
name
bio
avatarLg: avatar_url(size: 168)
avatarSm: avatar_url(size: 40)
socials {
  url
}
photos(limit: 3) {
  src
}
friends(limit: 3) {
  name
  avatar_url(size: 100)
}

Query : Example

@kokkisajee

@kokkisajee

mutation CREATE_POST($value: String!) {
 createPost(value: $value) {














 }
}
author {
  name
  avatar_url(size: 40)
}
body
id
date
...

Mutation : Example

@kokkisajee

@kokkisajee

subscription FEED_UPDATES {
 postAdded {










 }
}
author {
  name
  avatar_url(size: 40)
}
body
id
date
...

Query : Subscription

@kokkisajee

@kokkisajee

Characteristics of Good GraphQL API

Sufficiently Powerful

Hard to Misuse and easy to maintain

Appropriate to Audience and easy to expand

Easy to Learn and use even without documentation

@kokkisajee

Postman : The saviour since 2012

Recurring Operations

Environment Configuration (For performance testing)

Automated Graphql API tests

Test Data Generation

Exploratory API Testing

@kokkisajee

Here Comes the PostMan

@kokkisajee

An Analogy

@kokkisajee

POSTMAN fundamentals

@kokkisajee

Let's see it in action

@kokkisajee

I'm open to questions!

Q&A

@kokkisajee

"Always pass on what you have learned."

 

Thank you

@kokkisajee

Made with Slides.com