SlideShare a Scribd company logo
1 of 16
Download to read offline
International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020
DOI: 10.5121/ijwsc.2020.11201 1
A COMPARATIVE STUDY BETWEEN GRAPH-QL&
RESTFUL SERVICES IN API MANAGEMENT OF
STATELESS ARCHITECTURES
Mr.Sayan Guha and Mrs.Shreyasi Majumder
Data Architect, AI and Analytics Practice, Cognizant Technology Solutions, India
ABSTRACT
A stateless architecture design is a web architecture design that typically does not persist data in any
database and such applications also does not require any kind of backup storage. Data that flows through
a stateless service is data in transition and such data is never stored in any data store. The processing
requests that arrive to such architecture does not rely on information gathered or persisted from any
previous session. API (Application programming interface) which consists of subroutines, definitions &
procedures that can access data on the applications are the communication points between applications
and management of API endpoints using stateless architecture is less complex as there is no server side
retention of the client session and each client sends requisite information in each request to the server.
GraphQL and RESTful services are means of designing such API architecture. This paper discusses and
explains in detail both GraphQL and REST API architecture design and management methods and does an
analysis of the potential benefits of GraphQL over REST in Stateless architectural API designs.
KEYWORDS
API, RESTful, URI, GraphQL, Stateless, Schema Definition Language (SDL), HTTP, Mutation.
1. INTRODUCTION
Since inception of API based web services to aid seamless integration & data exchange across
applications on the foundations of stateless architecture, REST based API web services have been
the de-facto standard & preferred architectural style for design and management of the web
services.
Although there are scenarios, where performance of a web service API, tailored need of the data
consumer & ease of retrieval of data using one single API endpoint lays a strong underpinning for
using GRAPHQL as suitable alternative of REST for Web service computing.
In this paper, we aim to perform a comparative analysis of scenarios where GRAPHQL could
evolve as an alternative architectural style for API based stateless application architectures. We
aimed to infer based on observations with variable data volumes simulating an experiment with
social media posts. We have performed the experiment across many iterations and factoring the
complexities of number of API endpoints & increasing data volume in each iteration to depict the
behavioural response of both GRAPHQL & REST in terms of throughput. The results depict
potential benefits of GRAPHQL over REST & identifies areas of further research and
improvement with GRAPHQL based approachWe have organized the remainder of the paper as
follows. In Section 2, we discussed API management in stateless architecture as a brief
introduction to the context. In Section 3, related work has been discussed in REST based API
management scenarios along with the shortcomings and security vulnerabilities. In Section 4, we
aim to provide a concise introduction to GRAPHQL based API management approach along with
International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020
2
resolution to the conventional problems encountered in REST based approach. We aimed to
explain the supported types of GRAPHQL & its usage scenarios to facilitate an appreciative
understanding of GRAPHQL objects and ease the understanding of to the experiment in the
subsequent Section 5.
In Section 6, we present the performance evaluation results factoring the complexity of number
of API & increasing data volume and relative analysis of GRAPHQL Vs REST. We summarize
our work in Section 7.
2. API MANAGEMENT IN STATELESS ARCHITECTURE
MoussaTaifi et al (2016) [1] says the challenge of HPC (High Performance computing)
applications are required to be improved on the fronts of reliability and performance owing to the
existing difficulties for existing performance tuned APIs and provided a solution provided by
Stateless architecture at scale.
In a Stateless architecture, deploying APIs to multiple number of concurrent users and to multiple
servers is a good practice. Any server can handle any request as no session information is being
stored from previous sessions.
3. RELATED WORK
JacekKopeckĂœ et al (2016) [2] mentioned that the existing misuse HTTP protocols has paved the
way to RESTful services into the picture for effective API management. HTTP operations like
GET, PUT, POST, DELETE & PATCH are united under the umbrella of combined operations
under the name of “RESTfulness” adopting the acronym of REST invented by Roy Thomas
Fielding (2010) [3].
Roy Thomas Fielding (2010) [3] mentioned in his article that RESTful Web Services is a client-
server architectural style that provides a behavioural model for client applications and web
services. REST describes a number of design principles and constraints, such as stateless
communication and the use of uniform interfaces and self-descriptive messages applied in REST-
based services.
The services created in accordance to the style of REST architecture are typically referenced a
RESTful web services. The basic principle of a RESTful web service the exposure a set of
resources, i.e., any information source, uniquely identified by a Uniform Resource Identifier
(URI) and can be accessed through web. The below shows the working principle of RESTful
Web Service in API management.
International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020
3
Figure 1: Runtime architecture of RESTful Web Services Source: Website, phppot.com
3.1. Limitations of RESTful Services in Stateless Architecture
Below limitations exist while working with RESTful services in Stateless architectural
communications:
i. Incapability to heavyweight data transfer: According to FestimHalili et al (2018) [4] one of
the major drawbacks of RESTful Web Services lies in the incapability of handling heavy data
transfer. This inability actually makes REST services lightweight and rely on lightweight data
transfer over a common interface –the URL.
ii. Reliability on fixed data structures: REST relies on fixed data structures. In RESTful,
services making multiple calls to different REST endpoints is required and separate code to
transform & merge the data from each response is required before using them to render your
views. REST relies on the fixed data structures and iterative process to get the desired
response.
iii. Security challenges: API management done using REST has proven to be vulnerable to
security threats over the web. According to NishuPrasher (2018) [5] the possibilities of the
following security vulnerability possibilities in his thesis.
International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020
4
Table 1. REST Security vulnerability possibilities
Possibility Scenario
Injection Attacks &
message altering
Unreliable SQL injection into API by a
command
Security Assurance SQL injection, parameter & path
disclosure
Authentication-based
attacks
Inadequate authentication. Hacking of
web tokens.
Denial of service (DoS) and
buffer overflows
API key/ Access token hacking if no
threshold on too many requests
Cross-site scripting/cross-
site request forgery
Also known as, XSS attack. REST
APIs are vulnerable when
malevolent code is injected as input
to web services
Man-in-the-middle (MITM)
attacks
Absence of TLS layer security in a
REST API. Lack of transport level
encryption
Replay attacks and
spoofing.
REST APIs are vulnerable to spoofing
of the valid transactions and the
attacker could replay one valid
transactions as would like.
Insecure direct object
references.
REST APIs expose IDs to get
resources. This results in direct
exposure to internal objects
Sensitive data exposure. Non Encrypted data exposure
Missing function level
access control
Weak authentication validation in
sensitive request handlers
4. GRAPHQL IN API MANAGEMENT
GraphQL is an alternative and all new approach to interact with Web APIs. It is an open source
data manipulation and querying language for APIs. It is dynamic, single endpoint interactive
query based language to interact with APIs. Client systems using GraphQL can talk to the server
on exactly what they need, the queries are written to interact the web on exactly what is required -
nothing more or less.
As an alternative to conventional RESTful service, GraphQL developed by FacebookÂź in 2012 &
publicly released in 2015.
On 7 November 2018, FacebookÂź transferred the GraphQL project to the lately established
GraphQL Foundation, hosted by the non-profit Linux Foundation.
Olaf Hartig et al (2017) [6] in his conference paper explains GraphQL as new type of Web-based
data access interfaces that presents an alternative to the notion of REST-based interfaces & owing
to this advantages over REST, since its release GraphQL has gained signiïŹcant momentum and
has been adopted by an increasing number of users.
International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020
5
4.1. GRAPHQL based API management – An alternative approach
Kristopher Sandoval (2017) [7] in his research blog discussed about the potential benefits of
using GraphQL. He also mentions that because GraphQL is extremely powerful, several
providers who need stable readability with quick speed and indexing have used it. Most of the use
cases for GraphQL are therefore those who require high data throughput with ease of sorting &
represented clearly by its highest profile users.
Data Fetching using Single Endpoint
Data Fetch using GraphQL is a paradigm shift compared to working with REST APIs. REST
APIs considered multiple specific endpoints to load the data. In GraphQL APIs typically a single
endpoint is exposed and which in turns out to be more flexible for the client system to decide
what data is actually needed. The below figure explains the difference of data fetch between
REST API and GRAPHQL APIs.
Figure 2: REST API Vs GraphQL API Source: Website, pinterest.com
Resolution to Underfetching&Overfetching
Overfetching means the API consumer downloads more information than actually required for his
custom need. In Rest API, the only way user obtains the data is by accessing multiple endpoints.
The Response might have additional information that the user requirement. This situation is
Overfetching.
Underfetching means API consumer downloads less information than actually required for his
custom need. In Rest API, the only way user obtains the data is by accessing multiple endpoints.
The Response might have less information that the user requirement. In this situation, the client
will make additional request until the retrieval of required information. This situation is
Underfetching.
In GraphQL client, obtain exactly the data they need from an API. The below figure explains a
sample GraphQL request query to fetch authors and relevant articles details in a single GraphQL
query. It does not require two separate endpoints.
International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020
6
Figure 3: GraphQL query to fetch students all classes in a school
Schema Definition Language (SDL)
Olaf Hartig et al (2019) [8] in his research paper has focussed on repurpose of schemas for graph
databases that are based on the Property Graph model based the Schema Definition Language
(SDL), originally meant as a language to define a so-called GraphQL schema that specifies
different types of objects that can be queried when accessing a particular Web API.
Therefore, the authors rearticulate definition of Schema Definition Language (SDL) from data
usage standpoint -GraphQL uses a schema to articulate the shape of the data graph. This schema
defines and describes a hierarchy of objects called types, populated from the backend database
storage.
Olaf Hartig et al (2018) [9] in his morning paper blog have put together many perspectives of
quantitative definition of GraphQL schemas. One of the most popularly used definition explains
GraphQL as edge-labelled multigraph where each node is associated with an object type and
comprising of dictionary of properties. Property keys derives their as field names from set F.
GraphQL schemas constructed over three sets: Fields (F), Arguments (A), and Types (T)
As per the authors GraphQL graph over (F, A, T) is a representation of a tuple
G = (N, E, τ, λ, r) where
‱ N is a set of nodes
‱ E is a set of edges of the form (u, f [α], v) where u, v € N, f € F and α is the partial mapping
from A to Values
‱ τ: N Oт is a function, which assigns a type to every node in the system.
‱ λ is a partial function that assigns a scalar value v € Values or a sequence [v1, v2...vn] of
scalar values where (vi € Values) of some pairs of the form (u, f [α]) where u € N, f € F and α
is the partial mapping from A to Values.
‱ r € N is the distinguished node called root node of the graph system.
International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020
7
Variety of Supported Type Definitions in GRAPHQL
In order to have a better understanding of our work about relative study of GRAPH-QL vis-Ă -vis
REST services in API management, we considered a quick appreciative recognition of various
supported type definitions associated with GRAPHQL & the related scenario of their application.
Table 2. GRAPHQL supported types
Type Type description Includes Definition
Primitive
type
Advanced
type
Heterogeneous
type
Data
retrieval
Insert
/
Update
in
API
change
Scalar
Scalar types are the
primitive types,
single type for
every scalar type
Int Signed 32‐bit
integer.
X
Float
Signed double-
precision
floating-
point value.
X
String
UTF-8
compliant
character
sequence
X
Boolean
True / False OR
1/0 decision
enabling
type
X
ID
A unique
identifier
and is
serialized as
a string
X
Object
Either a field or
another object
type of a
combination
Object type
can
constitute
another
Object type
along with
other
scalars
X X
Query
Object types by
means of which
data can be
retrieved from
multiple
variables for a
particular
schema
An explicit
mention of
the
required
fields
mentioned
in the query
X X X
Mutation
API, which can alter
data, types
useful either by
inserting or
updating data
already in the
database.
Type
constitutes
"Create" & "
Update
type" within
Type
Mutation
X X X
International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020
8
5. EXPERIMENT SCENARIO: RETREIVE SOCIAL MEDIA POST DATA
As we discussed the shortcomings of data fetching using REST API based calls & categorically
tried to explain the ease with which GRAPHQL has brought a paradigm shift to the fetching of
user and related data from any website using typically a single endpoint. In the experiment, we
have aimed to bring forth the advantage of right fetching of the data that is required compared the
limitations of over fetching and underfetching using REST API based GET calls.
GRAPHQL Based Query Engine
Based on all the work that has been accomplished with GRAPHQL, we conceptualize
GRAPHQL query engine would work as per the below block diagram.
Figure 4: Conceptual GRAPHQL Query Execution Engine
‱ Schema is a tailored type language, which will return results back to the user. The user/client
will request any number of fields and GRAPHQL server will return only the fields expected.
‱ The query optimization parser once parses the values, validated to be good by the schema
validator,
‱ The resolvers proceeds towards processing the query & will return requisite data fields only.
In the process of performing the experiment we have studied previous work of
JobineshPurushothaman (2018) [10] on his complete guide to building a polyglot GraphQL
Server lays down a foundational understanding to use GraphQL to its best for retrieving Social
Media Posts.
Our work derives inspiration from the same where he has provided lightweight understanding in
his paper.
In addition to the above, we have studied the work of Sebastian Eschweiler (2018) [11] on his
lightweight approach by which a server can be implemented of its own and can be made ready to
execute queries to retrieve data from any website.
International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020
9
All codes provided in the below example are not in executable state and only for educational
purpose used by the authors. It can help the reader to understand the approach to the retrieval but
is not a verbatim source code.
/ Provisioning of resolver functions for schema field & Type definitions
consttypeDefs = `
typequery{
post (id: Int!): Post
user (id: Int!): User
},
typepost {
Post_id: Int
user: User
title: String
},
typeuser {
id: Int
name: String
email: String
posts: [Post]
},
`;
/ declare variable definitions for post and users for different users
/ Author names used for demo purpose
varpost = [
{
Post_id: 1,
user: 1,
title: ‘Sky is the limit’,
},
{
Post_id: 2,
user: 2,
title: 'Where knowledge is free and head is held high’
}
]
International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020
10
Figure 5: Sample code to create API endpoints to retrieve data using GRAPHQL
varuser = [
{
User_id: 1,
name: 'ShreyasiMajumder’,
email: 'shmaj@yahoo.com’
},
{
id: 2,
name: ‘SayanGuha’,
email: 'sguha@yahoo.com’
}
];
/ Variables functions to getPost&getUser
vargetPost=function (root, {id})
{
returnpost.filter
(post => {
return post. Post_id === id;
}) [0];
};
vargetUser= function (root, {id})
{
returnuser.filter
(user => {
return user. User_id === id;
}) [0];
};
/ Provisioning of resolver functions for schema fields
const resolvers = {
query: {
post: getPost,
user: getUser,
},
User: {
posts: (user) => filter (post, {userId: user. id}),
},
Post: {
user: (post) => find (user, {postid: post.id}),
},
};
/ End of code required to create the API endpoints for data retrieval to work
International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020
11
The authors hereby also draws attention to the work by Erik Wittern et al (2018) [12] y on the
best utilization of GRAPHQL to query of the API endpoints. They mentioned to have analysed
corpuses for common schema characteristics, naming conventions, and worst-case response sizes.
Authors have extended the same understanding with the above case study, evaluated the retrieval
time for the same API endpoint, and made a comparitive study with RESTful service based data
retrieval in terms of throughput time.
Extending the code shared already in Figure 4, we depict the retrieval of data by user query.
Figure 6: Sample query to retrieve data from Social Media Website & related details of the user
The query would provide the results and related user details in one query and working with one
API endpoint
Figure 7: Data Output from the Data retrieval query obtained from one API endpoint
/ Sample query definition to get all Post info and user information for the post in a
single query
queryInfoPostUser {
post(id:1)
{
Post_id
title
user
{
User_id
name
email
}}
}
/ Sample query for data retrieval from a social media website & related details of the
user of the post
"data":
{
“post":
{"Post_id": 1,
"title":‘Sky is the limit’,
"user": {
"User_id": 1,
"name":'ShreyasiMajumder’,
"email":'shmaj@yahoo.com’
}}
}
International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020
12
6. PERFORMANCE EVALUATION: REST VS GRAPHQL
Our work in evaluation of performance of REST Vs GRAPHQL is most closely related to
MatheusSeabra et al (2019) [13] who has done a deep performance comparison study between
REST and GRAPHQL in his conference paper.
MatheusSeabra et al (2019) [13] mentioned that through research of performance metrics of
response time and the average transfer rate between the requests, it was possible to deduce the
particularities of each architectural model in terms of performance metrics. We observed that
migrating to GraphQL resulted in an increase in performance in two-thirds of the tested
application.
Authors have carried out a Proof of Concept not by migrating from REST to GRAPHQL but
creating sample API endpoints for REST and GRAPHQL and tested the same in open source
playground and tested the throughput in terms of response time for data retrieval in 3 iterations
i. Iteration1: We carried out Iteration1 with a data volume of 1,000 data records through one
REST API and one GRAPHQL API endpoints.
ii. Iteration 2: We carried out Iteration1 with a data volume of 10,000 data records through two
REST API and one GRAPHQL API endpoints.
iii. Iteration 3: We carried out Iteration1 with a data volume of 100,000 data records through
three REST API and one GRAPHQL API endpoints.
Performance evaluation for REST and GRAPHQL in the experiment based on the complexity
definition assumed by the authors as combination of data volume and API endpoint weightage as
below
Table 3. Complexity definition for Data retrieval & Data Volume (following the experiment scenario)
Complexity
Considerat
ion
Perspectiv
e
Technology
Platfor
m
No API
Endpoint
Considerat
ion
SIMPLE
MEDIUM
COMPLEX
Complexity of
Data
retrieval
REST
1 X
2 X
3 X
GRAPHQL
1 X
1 X
1 X
Complexity
Considerat
ion
Perspectiv
e
Technology
Platfor
m
Volume of
Data
SIMPLE
MEDIUM
COMPLEX
Complexity of
Data
Volume (
no of
records )
REST
1000 X
10000 X
1000000 X
GRAPHQL
1000 X
10000 X
1000000 X
International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020
13
Performance evaluation in response time (throughput) is as below.
The results show:
Iteration 1: Approximately marginal or no difference when we considered one API endpoint for
both REST and GRAPHQL with the same volume of 1000 data records.
Iteration 2: 35percentage lesser response time using GRAPHQL where 10 times higher data
volume considered with respect to Iteration1 and our Iteration 2 was executed with 10000 data
records. In Iteration 2, we considered two API endpoints in REST compared to only one API
endpoint required in GRAPHQL.
Iteration 3: When we increase the volume of data 100 times to the initial volume and execute
Iteration 3 with 100,000 data records with three REST API endpoints being considered compared
to only one API endpoint as required GRAPHQL. The authors have observed an approximate
40% less response time required in the experiment results in GRAPHQL.
Figure 8: REST Experiment API Results
Left – Relationship between the three dimensions (Volume, No of APIs and REST Response
Time Right – Linear Trend of REST Response Time Plotted on data volume considered for three
iterations of the experiment
Figure 9: GRAPHQL Experiment API Results
Left – Relationship between the three dimensions (Volume, No of APIs and GRAPHQL
Response Time Right – Linear Trend of GRAPHQL Response Time Plotted on data volume
considered for three iterations of the experiment
International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020
14
The authors therefore considers
‱ The single API endpoint utilization in GRAPHQL as one of the key factors to determine the
ease of availability of data as well as the response time with a constant data volume.
‱ High data volume experiment to check the relationship between the No of API Endpoints Vs
the Response time to conclude and understand the implications of high volumes vs number of
API endpoints. REST services produces low performance in response time compared to
GRAPHQL.
Authors therefore share one more observation with only two parameters No of API Endpoints &
Response Time in REST and GRAPHQL testing the performance with only 1 Iteration in this
case viz. 100,000 data records, which confirms the understanding of linear increase of REST in
response time compared to GRAPHQL as below.
Figure 10: No. API Endpoints Vs Response time relationship for a high volume
7. LIMITATIONS AND AREAS OF IMPROVEMENT
The authors have observed that the performance of GRAPHQL considerably increases compared
to the REST based API framework in situations where considerable data volume is considered.
Researchers plausibly considers REST as the defacto standard in APIs, which have very less
number of entities. The trade-off between the cost and architectural decision will favour REST
with success & ease of use in simple request-response architectural designs.
GRAPHQL on the other hand suits situations where data is required at scale, large number of
entities are involved, and expected growth of the data is manifold. The response time in such
cases with only one API interfaced for data retrieval makes is relatively better choice for selection
over REST.
In the experiment, with a gradual increasing data volume, we have captured the performance of
GRAPHQL relative to REST. Our results depict GRAPHQL capabilities of data retrieval are
considerably better in such situation.
We have not considered the caching implications of GRAPHQL, which could turn out to be
costly, in cases where we need to write tailored GRAPHQL queries & therefore cannot store
results cached from previous data operations. Our work lies within the boundaries of potential
benefits of GRAPHQL in response time where data volume is huge and number of entities are
large. The GRAPHQL based technology platform have limitations in single request–response
based interaction & caching capabilities These areas of improvement of GRAPHQL ,we consider
as subject to further research.
International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020
15
8. CONCLUSION
As studied, we have observed that GRAPHQL is increasing acceptability as preferred API
management technology where performance metrics of response time and utilization of lesser
number of API endpoints are key measuring criteria with high data volume. We acknowledge that
REST has become an industry standard for companies and API management using REST
endpoints have matured over period of time and GRAPHQL have a learning curve associated
with it and with improved tooling functions over a period of time in future applications of
GRAPHQL in fields like Business Intelligence will increase manifold.
Our work, we trust will motivate upcoming avenues of future research where performance, data
driven design and performance flexibility with lesser API interaction would take precedence.
REFERENCES
[1] MoussaTaifi, Yuan Shi. &YasinCelik (2015) “JENERGY: A Fault Tolerant Stateless Architecture for
High Performance Computing”,
https://www.researchgate.net/publication/303837779_JENERGY_A_Fault_Tolerant_Stateless_Archit
ecture_for_Hig_Performance_Computing
[2] JacekKopeckĂœ, Paul Fremantle & Rich Boakes (2014) “A history and future of Web APIs”,
https://www.researchgate.net/publication/274527941_A_history_and_future_of_Web_APIs
[3] Roy Thomas Fielding (2014) “Architectural Styles and the Design of Network-based Software
Architectures”, https://www.ics.uci.edu/~fielding/pubs/dissertation/fielding_dissertation.pdf.
[4] FestimHalili&YasinCelik (2018) “Web Services: A Comparison of Soap and Rest Services”,
https://www.researchgate.net/publication/323456206_Web_Services_A_Comparison_of_Soap_and_
Rest_Services.
[5] NishuPrasher (2018) “Security Assurance of REST API based applications”,
https://ntnuopen.ntnu.no/ntnu-
xmlui/bitstream/handle/11250/2502569/19973_FULLTEXT.pdf?sequence=1&isAllowed=y.
[6] Olaf Hartig& Jorge PĂ©rez (2017) “An Initial Analysis of Facebook's GraphQL Language”,
https://www.researchgate.net/publication/316686431_An_Initial_Analysis_of_Facebook's_GraphQL_
Language.
[7] Kristopher sandoval (2018) “7 Unique Benefits of Using GraphQL in Microservices”,
https://nordicapis.com/7-unique-benefits-of-using-graphql-in-microservices/
[8] Olaf Hartig& Jorge PĂ©rez (2017) “An Initial Analysis of Facebook's GraphQL Language”,
https://www.researchgate.net/publication/316686431_An_Initial_Analysis_of_Facebook's_GraphQL_
Language.
[9] Olaf Hartig& Jorge PĂ©rez (2018) “Semantics and complexity of GraphQL”,
https://blog.acolyer.org/2018/05/21/semantics-and-complexity-of-graphql/
[10] JobineshPurushothaman (2018) “Building a Polyglot GraphQL Server”,
https://static.rainfocus.com/oracle/oow18/sess/1526618246355001wDNO/PF/DEV6113_Purushotha
man_15404417239460019Dyp.pdf.
[11] Sebastian Eschweiler (2018) “Creating a GraphQL Server with Node.js and Express”,
https://medium.com/codingthesmartway-com-blog/creating-a-graphql-server-with-node-js-and-
express-f6dddc5320e1
International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020
16
[12] Erik Wittern, Alan Cha, James C. Davis, Guillaume Baudart& Louis Mandel (2018) “An Empirical
Study of GraphQL Schemas”, https://arxiv.org/pdf/1907.13012.pdf
[13] MatheusSeabra, Marcos Felipe Nazário, & Gustavo Pinto (2019) “REST or GraphQL? A
Performance Comparative Study”,
https://www.researchgate.net/publication/335784769_REST_or_GraphQL_A_Performance_Compara
tive_Study
AUTHORS
SayanGuha completed his Bachelors in Electronics & Communication Engineering in
2006. He have been serving Information Technology industry supporting Data
Modelling & Architecture across business domains of Retail, Banking, and Insurance
& Telecom. He is currently working with Cognizant technology Solutions and his
area of interests are in the fields of Big Data Integration, API based data integration
& Advanced analytics.
ShreyasiMajumder completed her Bachelors in Computer Science & Engineering in
2005. She have been serving Information Technology industry supporting across
business domains Retail, Manufacturing, Insurance & Telecom business domains. She
is currently working with Cognizant Technology Solutions and her areas of interests
are in the fields of Business Intelligence, Design thinking, Big Data & API based data
integration and Advanced Analytics.

More Related Content

Similar to A COMPARATIVE STUDY BETWEEN GRAPH-QL Amp RESTFUL SERVICES IN API MANAGEMENT OF STATELESS ARCHITECTURES

Three Dimensional Database: Artificial Intelligence to eCommerce Web service ...
Three Dimensional Database: Artificial Intelligence to eCommerce Web service ...Three Dimensional Database: Artificial Intelligence to eCommerce Web service ...
Three Dimensional Database: Artificial Intelligence to eCommerce Web service ...CSCJournals
 
Saturn 2018 rest.li
Saturn 2018 rest.liSaturn 2018 rest.li
Saturn 2018 rest.liMin Chen
 
SOME INTEROPERABILITY ISSUES IN THE DESIGNING OF WEB SERVICES : CASE STUDY ON...
SOME INTEROPERABILITY ISSUES IN THE DESIGNING OF WEB SERVICES : CASE STUDY ON...SOME INTEROPERABILITY ISSUES IN THE DESIGNING OF WEB SERVICES : CASE STUDY ON...
SOME INTEROPERABILITY ISSUES IN THE DESIGNING OF WEB SERVICES : CASE STUDY ON...ijwscjournal
 
Continuous Health Monitoring of Micro-Service based Application
Continuous Health Monitoring of Micro-Service based ApplicationContinuous Health Monitoring of Micro-Service based Application
Continuous Health Monitoring of Micro-Service based ApplicationIRJET Journal
 
Backend for Frontend in Microservices
Backend for Frontend in MicroservicesBackend for Frontend in Microservices
Backend for Frontend in MicroservicesIRJET Journal
 
20507-38933-1-PB.pdf
20507-38933-1-PB.pdf20507-38933-1-PB.pdf
20507-38933-1-PB.pdfIjictTeam
 
A Novel Robust &Fault Tolerance Framework for Webservices using ws-I Specific...
A Novel Robust &Fault Tolerance Framework for Webservices using ws-I Specific...A Novel Robust &Fault Tolerance Framework for Webservices using ws-I Specific...
A Novel Robust &Fault Tolerance Framework for Webservices using ws-I Specific...Abhishek Kumar
 
REST based API
REST based APIREST based API
REST based APIijtsrd
 
Performance Evaluation of Web Services In Linux On Multicore
Performance Evaluation of Web Services In Linux On MulticorePerformance Evaluation of Web Services In Linux On Multicore
Performance Evaluation of Web Services In Linux On MulticoreCSCJournals
 
A Study Of Web Services And Its Implications
A Study Of Web Services And Its ImplicationsA Study Of Web Services And Its Implications
A Study Of Web Services And Its ImplicationsTony Lisko
 
Enhancement in Web Service Architecture
Enhancement in Web Service ArchitectureEnhancement in Web Service Architecture
Enhancement in Web Service ArchitectureIJERA Editor
 
Fullstack Interview Questions and Answers.pdf
Fullstack Interview Questions and Answers.pdfFullstack Interview Questions and Answers.pdf
Fullstack Interview Questions and Answers.pdfcsvishnukumar
 
A Deep Dive into REST API Framework Survey
A Deep Dive into REST API Framework SurveyA Deep Dive into REST API Framework Survey
A Deep Dive into REST API Framework SurveyIRJET Journal
 
Rich Internet Web Application Development using Google Web Toolkit
Rich Internet Web Application Development using Google Web ToolkitRich Internet Web Application Development using Google Web Toolkit
Rich Internet Web Application Development using Google Web ToolkitIJERA Editor
 
DLTSR_A_Deep_Learning_Framework_for_Recommendations_of_Long-Tail_Web_Services...
DLTSR_A_Deep_Learning_Framework_for_Recommendations_of_Long-Tail_Web_Services...DLTSR_A_Deep_Learning_Framework_for_Recommendations_of_Long-Tail_Web_Services...
DLTSR_A_Deep_Learning_Framework_for_Recommendations_of_Long-Tail_Web_Services...NAbderrahim
 
Rest api best practices – comprehensive handbook
Rest api best practices – comprehensive handbookRest api best practices – comprehensive handbook
Rest api best practices – comprehensive handbookKaty Slemon
 
A_Deep_Neural_Network_With_Multiplex_Interactions_for_Cold-Start_Service_Reco...
A_Deep_Neural_Network_With_Multiplex_Interactions_for_Cold-Start_Service_Reco...A_Deep_Neural_Network_With_Multiplex_Interactions_for_Cold-Start_Service_Reco...
A_Deep_Neural_Network_With_Multiplex_Interactions_for_Cold-Start_Service_Reco...NAbderrahim
 
Vol 10 No 1 - February 2014
Vol 10 No 1 - February 2014Vol 10 No 1 - February 2014
Vol 10 No 1 - February 2014ijcsbi
 

Similar to A COMPARATIVE STUDY BETWEEN GRAPH-QL Amp RESTFUL SERVICES IN API MANAGEMENT OF STATELESS ARCHITECTURES (20)

Three Dimensional Database: Artificial Intelligence to eCommerce Web service ...
Three Dimensional Database: Artificial Intelligence to eCommerce Web service ...Three Dimensional Database: Artificial Intelligence to eCommerce Web service ...
Three Dimensional Database: Artificial Intelligence to eCommerce Web service ...
 
Saturn 2018 rest.li
Saturn 2018 rest.liSaturn 2018 rest.li
Saturn 2018 rest.li
 
Lab7 paper
Lab7 paperLab7 paper
Lab7 paper
 
SOME INTEROPERABILITY ISSUES IN THE DESIGNING OF WEB SERVICES : CASE STUDY ON...
SOME INTEROPERABILITY ISSUES IN THE DESIGNING OF WEB SERVICES : CASE STUDY ON...SOME INTEROPERABILITY ISSUES IN THE DESIGNING OF WEB SERVICES : CASE STUDY ON...
SOME INTEROPERABILITY ISSUES IN THE DESIGNING OF WEB SERVICES : CASE STUDY ON...
 
Continuous Health Monitoring of Micro-Service based Application
Continuous Health Monitoring of Micro-Service based ApplicationContinuous Health Monitoring of Micro-Service based Application
Continuous Health Monitoring of Micro-Service based Application
 
Backend for Frontend in Microservices
Backend for Frontend in MicroservicesBackend for Frontend in Microservices
Backend for Frontend in Microservices
 
20507-38933-1-PB.pdf
20507-38933-1-PB.pdf20507-38933-1-PB.pdf
20507-38933-1-PB.pdf
 
A Novel Robust &Fault Tolerance Framework for Webservices using ws-I Specific...
A Novel Robust &Fault Tolerance Framework for Webservices using ws-I Specific...A Novel Robust &Fault Tolerance Framework for Webservices using ws-I Specific...
A Novel Robust &Fault Tolerance Framework for Webservices using ws-I Specific...
 
REST based API
REST based APIREST based API
REST based API
 
Performance Evaluation of Web Services In Linux On Multicore
Performance Evaluation of Web Services In Linux On MulticorePerformance Evaluation of Web Services In Linux On Multicore
Performance Evaluation of Web Services In Linux On Multicore
 
A Study Of Web Services And Its Implications
A Study Of Web Services And Its ImplicationsA Study Of Web Services And Its Implications
A Study Of Web Services And Its Implications
 
Enhancement in Web Service Architecture
Enhancement in Web Service ArchitectureEnhancement in Web Service Architecture
Enhancement in Web Service Architecture
 
Fullstack Interview Questions and Answers.pdf
Fullstack Interview Questions and Answers.pdfFullstack Interview Questions and Answers.pdf
Fullstack Interview Questions and Answers.pdf
 
A Deep Dive into REST API Framework Survey
A Deep Dive into REST API Framework SurveyA Deep Dive into REST API Framework Survey
A Deep Dive into REST API Framework Survey
 
Rich Internet Web Application Development using Google Web Toolkit
Rich Internet Web Application Development using Google Web ToolkitRich Internet Web Application Development using Google Web Toolkit
Rich Internet Web Application Development using Google Web Toolkit
 
DLTSR_A_Deep_Learning_Framework_for_Recommendations_of_Long-Tail_Web_Services...
DLTSR_A_Deep_Learning_Framework_for_Recommendations_of_Long-Tail_Web_Services...DLTSR_A_Deep_Learning_Framework_for_Recommendations_of_Long-Tail_Web_Services...
DLTSR_A_Deep_Learning_Framework_for_Recommendations_of_Long-Tail_Web_Services...
 
Rest api best practices – comprehensive handbook
Rest api best practices – comprehensive handbookRest api best practices – comprehensive handbook
Rest api best practices – comprehensive handbook
 
Switch to Backend 2023 | Day 1 Part 1
Switch to Backend 2023 | Day 1 Part 1Switch to Backend 2023 | Day 1 Part 1
Switch to Backend 2023 | Day 1 Part 1
 
A_Deep_Neural_Network_With_Multiplex_Interactions_for_Cold-Start_Service_Reco...
A_Deep_Neural_Network_With_Multiplex_Interactions_for_Cold-Start_Service_Reco...A_Deep_Neural_Network_With_Multiplex_Interactions_for_Cold-Start_Service_Reco...
A_Deep_Neural_Network_With_Multiplex_Interactions_for_Cold-Start_Service_Reco...
 
Vol 10 No 1 - February 2014
Vol 10 No 1 - February 2014Vol 10 No 1 - February 2014
Vol 10 No 1 - February 2014
 

More from Amanda Summers

Compare And Contrast Essay Examples - Compar
Compare And Contrast Essay Examples - ComparCompare And Contrast Essay Examples - Compar
Compare And Contrast Essay Examples - ComparAmanda Summers
 
Writing A College Essay, Part 2- The Extended Outline C
Writing A College Essay, Part 2- The Extended Outline CWriting A College Essay, Part 2- The Extended Outline C
Writing A College Essay, Part 2- The Extended Outline CAmanda Summers
 
How To Write A Satire Essay To School - My Great Satire E
How To Write A Satire Essay To School - My Great Satire EHow To Write A Satire Essay To School - My Great Satire E
How To Write A Satire Essay To School - My Great Satire EAmanda Summers
 
1 Writing An Introduction For An Essay. Homework Help Sites.
1 Writing An Introduction For An Essay. Homework Help Sites.1 Writing An Introduction For An Essay. Homework Help Sites.
1 Writing An Introduction For An Essay. Homework Help Sites.Amanda Summers
 
6 Best AI Essay Writer Tools To Create 100 Original Content
6 Best AI Essay Writer Tools To Create 100 Original Content6 Best AI Essay Writer Tools To Create 100 Original Content
6 Best AI Essay Writer Tools To Create 100 Original ContentAmanda Summers
 
Ant Writing Paper - Training4Thefuture.X.Fc2.Com
Ant Writing Paper - Training4Thefuture.X.Fc2.ComAnt Writing Paper - Training4Thefuture.X.Fc2.Com
Ant Writing Paper - Training4Thefuture.X.Fc2.ComAmanda Summers
 
027 Sample Paragraph Closing Sentences For Ess
027 Sample Paragraph Closing Sentences For Ess027 Sample Paragraph Closing Sentences For Ess
027 Sample Paragraph Closing Sentences For EssAmanda Summers
 
Why College Is Important Ess. Online assignment writing service.
Why College Is Important Ess. Online assignment writing service.Why College Is Important Ess. Online assignment writing service.
Why College Is Important Ess. Online assignment writing service.Amanda Summers
 
How To Find The Best Essay Writing Service Technogog
How To Find The Best Essay Writing Service TechnogogHow To Find The Best Essay Writing Service Technogog
How To Find The Best Essay Writing Service TechnogogAmanda Summers
 
Poetry Writing Paper - Inhisstepsmo.Web.Fc2.Com
Poetry Writing Paper - Inhisstepsmo.Web.Fc2.ComPoetry Writing Paper - Inhisstepsmo.Web.Fc2.Com
Poetry Writing Paper - Inhisstepsmo.Web.Fc2.ComAmanda Summers
 
Social Issue Essay. Online assignment writing service.
Social Issue Essay. Online assignment writing service.Social Issue Essay. Online assignment writing service.
Social Issue Essay. Online assignment writing service.Amanda Summers
 
Hire Essay Writer - Crunchbase Company Pr
Hire Essay Writer - Crunchbase Company PrHire Essay Writer - Crunchbase Company Pr
Hire Essay Writer - Crunchbase Company PrAmanda Summers
 
PPT - How To Write A Document Based Questi
PPT - How To Write A Document Based QuestiPPT - How To Write A Document Based Questi
PPT - How To Write A Document Based QuestiAmanda Summers
 
Essay Websites Personal Response Essay Format
Essay Websites Personal Response Essay FormatEssay Websites Personal Response Essay Format
Essay Websites Personal Response Essay FormatAmanda Summers
 
How To Type A Conclusion Paragraph. How To Start A
How To Type A Conclusion Paragraph. How To Start AHow To Type A Conclusion Paragraph. How To Start A
How To Type A Conclusion Paragraph. How To Start AAmanda Summers
 
College Essay Writers - Admission Essay Writing S
College Essay Writers - Admission Essay Writing SCollege Essay Writers - Admission Essay Writing S
College Essay Writers - Admission Essay Writing SAmanda Summers
 
Why Writing Can Be So Difficult. Online assignment writing service.
Why Writing Can Be So Difficult. Online assignment writing service.Why Writing Can Be So Difficult. Online assignment writing service.
Why Writing Can Be So Difficult. Online assignment writing service.Amanda Summers
 
3Rd Grade Rocks If I Were A Pirate...Writing Lesson
3Rd Grade Rocks If I Were A Pirate...Writing Lesson3Rd Grade Rocks If I Were A Pirate...Writing Lesson
3Rd Grade Rocks If I Were A Pirate...Writing LessonAmanda Summers
 
Cheating In Schools And Colleges - Free Essay Exa
Cheating In Schools And Colleges - Free Essay ExaCheating In Schools And Colleges - Free Essay Exa
Cheating In Schools And Colleges - Free Essay ExaAmanda Summers
 
Roger Wolfson - What To Practice If You Wish To Be A TV Scriptwriter ...
Roger Wolfson - What To Practice If You Wish To Be A TV Scriptwriter ...Roger Wolfson - What To Practice If You Wish To Be A TV Scriptwriter ...
Roger Wolfson - What To Practice If You Wish To Be A TV Scriptwriter ...Amanda Summers
 

More from Amanda Summers (20)

Compare And Contrast Essay Examples - Compar
Compare And Contrast Essay Examples - ComparCompare And Contrast Essay Examples - Compar
Compare And Contrast Essay Examples - Compar
 
Writing A College Essay, Part 2- The Extended Outline C
Writing A College Essay, Part 2- The Extended Outline CWriting A College Essay, Part 2- The Extended Outline C
Writing A College Essay, Part 2- The Extended Outline C
 
How To Write A Satire Essay To School - My Great Satire E
How To Write A Satire Essay To School - My Great Satire EHow To Write A Satire Essay To School - My Great Satire E
How To Write A Satire Essay To School - My Great Satire E
 
1 Writing An Introduction For An Essay. Homework Help Sites.
1 Writing An Introduction For An Essay. Homework Help Sites.1 Writing An Introduction For An Essay. Homework Help Sites.
1 Writing An Introduction For An Essay. Homework Help Sites.
 
6 Best AI Essay Writer Tools To Create 100 Original Content
6 Best AI Essay Writer Tools To Create 100 Original Content6 Best AI Essay Writer Tools To Create 100 Original Content
6 Best AI Essay Writer Tools To Create 100 Original Content
 
Ant Writing Paper - Training4Thefuture.X.Fc2.Com
Ant Writing Paper - Training4Thefuture.X.Fc2.ComAnt Writing Paper - Training4Thefuture.X.Fc2.Com
Ant Writing Paper - Training4Thefuture.X.Fc2.Com
 
027 Sample Paragraph Closing Sentences For Ess
027 Sample Paragraph Closing Sentences For Ess027 Sample Paragraph Closing Sentences For Ess
027 Sample Paragraph Closing Sentences For Ess
 
Why College Is Important Ess. Online assignment writing service.
Why College Is Important Ess. Online assignment writing service.Why College Is Important Ess. Online assignment writing service.
Why College Is Important Ess. Online assignment writing service.
 
How To Find The Best Essay Writing Service Technogog
How To Find The Best Essay Writing Service TechnogogHow To Find The Best Essay Writing Service Technogog
How To Find The Best Essay Writing Service Technogog
 
Poetry Writing Paper - Inhisstepsmo.Web.Fc2.Com
Poetry Writing Paper - Inhisstepsmo.Web.Fc2.ComPoetry Writing Paper - Inhisstepsmo.Web.Fc2.Com
Poetry Writing Paper - Inhisstepsmo.Web.Fc2.Com
 
Social Issue Essay. Online assignment writing service.
Social Issue Essay. Online assignment writing service.Social Issue Essay. Online assignment writing service.
Social Issue Essay. Online assignment writing service.
 
Hire Essay Writer - Crunchbase Company Pr
Hire Essay Writer - Crunchbase Company PrHire Essay Writer - Crunchbase Company Pr
Hire Essay Writer - Crunchbase Company Pr
 
PPT - How To Write A Document Based Questi
PPT - How To Write A Document Based QuestiPPT - How To Write A Document Based Questi
PPT - How To Write A Document Based Questi
 
Essay Websites Personal Response Essay Format
Essay Websites Personal Response Essay FormatEssay Websites Personal Response Essay Format
Essay Websites Personal Response Essay Format
 
How To Type A Conclusion Paragraph. How To Start A
How To Type A Conclusion Paragraph. How To Start AHow To Type A Conclusion Paragraph. How To Start A
How To Type A Conclusion Paragraph. How To Start A
 
College Essay Writers - Admission Essay Writing S
College Essay Writers - Admission Essay Writing SCollege Essay Writers - Admission Essay Writing S
College Essay Writers - Admission Essay Writing S
 
Why Writing Can Be So Difficult. Online assignment writing service.
Why Writing Can Be So Difficult. Online assignment writing service.Why Writing Can Be So Difficult. Online assignment writing service.
Why Writing Can Be So Difficult. Online assignment writing service.
 
3Rd Grade Rocks If I Were A Pirate...Writing Lesson
3Rd Grade Rocks If I Were A Pirate...Writing Lesson3Rd Grade Rocks If I Were A Pirate...Writing Lesson
3Rd Grade Rocks If I Were A Pirate...Writing Lesson
 
Cheating In Schools And Colleges - Free Essay Exa
Cheating In Schools And Colleges - Free Essay ExaCheating In Schools And Colleges - Free Essay Exa
Cheating In Schools And Colleges - Free Essay Exa
 
Roger Wolfson - What To Practice If You Wish To Be A TV Scriptwriter ...
Roger Wolfson - What To Practice If You Wish To Be A TV Scriptwriter ...Roger Wolfson - What To Practice If You Wish To Be A TV Scriptwriter ...
Roger Wolfson - What To Practice If You Wish To Be A TV Scriptwriter ...
 

Recently uploaded

à€­à€Ÿà€°à€€-à€°à„‹à€ź à€”à„à€Żà€Ÿà€Șà€Ÿà€°.pptx, Indo-Roman Trade,
à€­à€Ÿà€°à€€-à€°à„‹à€ź à€”à„à€Żà€Ÿà€Șà€Ÿà€°.pptx, Indo-Roman Trade,à€­à€Ÿà€°à€€-à€°à„‹à€ź à€”à„à€Żà€Ÿà€Șà€Ÿà€°.pptx, Indo-Roman Trade,
à€­à€Ÿà€°à€€-à€°à„‹à€ź à€”à„à€Żà€Ÿà€Șà€Ÿà€°.pptx, Indo-Roman Trade,Virag Sontakke
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
internship ppt on smartinternz platform as salesforce developer
internship ppt on smartinternz platform as salesforce developerinternship ppt on smartinternz platform as salesforce developer
internship ppt on smartinternz platform as salesforce developerunnathinaik
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptxENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptxAnaBeatriceAblay2
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfSumit Tiwari
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsKarinaGenton
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
History Class XII Ch. 3 Kinship, Caste and Class (1).pptx
History Class XII Ch. 3 Kinship, Caste and Class (1).pptxHistory Class XII Ch. 3 Kinship, Caste and Class (1).pptx
History Class XII Ch. 3 Kinship, Caste and Class (1).pptxsocialsciencegdgrohi
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 

Recently uploaded (20)

à€­à€Ÿà€°à€€-à€°à„‹à€ź à€”à„à€Żà€Ÿà€Șà€Ÿà€°.pptx, Indo-Roman Trade,
à€­à€Ÿà€°à€€-à€°à„‹à€ź à€”à„à€Żà€Ÿà€Șà€Ÿà€°.pptx, Indo-Roman Trade,à€­à€Ÿà€°à€€-à€°à„‹à€ź à€”à„à€Żà€Ÿà€Șà€Ÿà€°.pptx, Indo-Roman Trade,
à€­à€Ÿà€°à€€-à€°à„‹à€ź à€”à„à€Żà€Ÿà€Șà€Ÿà€°.pptx, Indo-Roman Trade,
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
internship ppt on smartinternz platform as salesforce developer
internship ppt on smartinternz platform as salesforce developerinternship ppt on smartinternz platform as salesforce developer
internship ppt on smartinternz platform as salesforce developer
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptxENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its Characteristics
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
History Class XII Ch. 3 Kinship, Caste and Class (1).pptx
History Class XII Ch. 3 Kinship, Caste and Class (1).pptxHistory Class XII Ch. 3 Kinship, Caste and Class (1).pptx
History Class XII Ch. 3 Kinship, Caste and Class (1).pptx
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 

A COMPARATIVE STUDY BETWEEN GRAPH-QL Amp RESTFUL SERVICES IN API MANAGEMENT OF STATELESS ARCHITECTURES

  • 1. International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020 DOI: 10.5121/ijwsc.2020.11201 1 A COMPARATIVE STUDY BETWEEN GRAPH-QL& RESTFUL SERVICES IN API MANAGEMENT OF STATELESS ARCHITECTURES Mr.Sayan Guha and Mrs.Shreyasi Majumder Data Architect, AI and Analytics Practice, Cognizant Technology Solutions, India ABSTRACT A stateless architecture design is a web architecture design that typically does not persist data in any database and such applications also does not require any kind of backup storage. Data that flows through a stateless service is data in transition and such data is never stored in any data store. The processing requests that arrive to such architecture does not rely on information gathered or persisted from any previous session. API (Application programming interface) which consists of subroutines, definitions & procedures that can access data on the applications are the communication points between applications and management of API endpoints using stateless architecture is less complex as there is no server side retention of the client session and each client sends requisite information in each request to the server. GraphQL and RESTful services are means of designing such API architecture. This paper discusses and explains in detail both GraphQL and REST API architecture design and management methods and does an analysis of the potential benefits of GraphQL over REST in Stateless architectural API designs. KEYWORDS API, RESTful, URI, GraphQL, Stateless, Schema Definition Language (SDL), HTTP, Mutation. 1. INTRODUCTION Since inception of API based web services to aid seamless integration & data exchange across applications on the foundations of stateless architecture, REST based API web services have been the de-facto standard & preferred architectural style for design and management of the web services. Although there are scenarios, where performance of a web service API, tailored need of the data consumer & ease of retrieval of data using one single API endpoint lays a strong underpinning for using GRAPHQL as suitable alternative of REST for Web service computing. In this paper, we aim to perform a comparative analysis of scenarios where GRAPHQL could evolve as an alternative architectural style for API based stateless application architectures. We aimed to infer based on observations with variable data volumes simulating an experiment with social media posts. We have performed the experiment across many iterations and factoring the complexities of number of API endpoints & increasing data volume in each iteration to depict the behavioural response of both GRAPHQL & REST in terms of throughput. The results depict potential benefits of GRAPHQL over REST & identifies areas of further research and improvement with GRAPHQL based approachWe have organized the remainder of the paper as follows. In Section 2, we discussed API management in stateless architecture as a brief introduction to the context. In Section 3, related work has been discussed in REST based API management scenarios along with the shortcomings and security vulnerabilities. In Section 4, we aim to provide a concise introduction to GRAPHQL based API management approach along with
  • 2. International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020 2 resolution to the conventional problems encountered in REST based approach. We aimed to explain the supported types of GRAPHQL & its usage scenarios to facilitate an appreciative understanding of GRAPHQL objects and ease the understanding of to the experiment in the subsequent Section 5. In Section 6, we present the performance evaluation results factoring the complexity of number of API & increasing data volume and relative analysis of GRAPHQL Vs REST. We summarize our work in Section 7. 2. API MANAGEMENT IN STATELESS ARCHITECTURE MoussaTaifi et al (2016) [1] says the challenge of HPC (High Performance computing) applications are required to be improved on the fronts of reliability and performance owing to the existing difficulties for existing performance tuned APIs and provided a solution provided by Stateless architecture at scale. In a Stateless architecture, deploying APIs to multiple number of concurrent users and to multiple servers is a good practice. Any server can handle any request as no session information is being stored from previous sessions. 3. RELATED WORK JacekKopeckĂœ et al (2016) [2] mentioned that the existing misuse HTTP protocols has paved the way to RESTful services into the picture for effective API management. HTTP operations like GET, PUT, POST, DELETE & PATCH are united under the umbrella of combined operations under the name of “RESTfulness” adopting the acronym of REST invented by Roy Thomas Fielding (2010) [3]. Roy Thomas Fielding (2010) [3] mentioned in his article that RESTful Web Services is a client- server architectural style that provides a behavioural model for client applications and web services. REST describes a number of design principles and constraints, such as stateless communication and the use of uniform interfaces and self-descriptive messages applied in REST- based services. The services created in accordance to the style of REST architecture are typically referenced a RESTful web services. The basic principle of a RESTful web service the exposure a set of resources, i.e., any information source, uniquely identified by a Uniform Resource Identifier (URI) and can be accessed through web. The below shows the working principle of RESTful Web Service in API management.
  • 3. International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020 3 Figure 1: Runtime architecture of RESTful Web Services Source: Website, phppot.com 3.1. Limitations of RESTful Services in Stateless Architecture Below limitations exist while working with RESTful services in Stateless architectural communications: i. Incapability to heavyweight data transfer: According to FestimHalili et al (2018) [4] one of the major drawbacks of RESTful Web Services lies in the incapability of handling heavy data transfer. This inability actually makes REST services lightweight and rely on lightweight data transfer over a common interface –the URL. ii. Reliability on fixed data structures: REST relies on fixed data structures. In RESTful, services making multiple calls to different REST endpoints is required and separate code to transform & merge the data from each response is required before using them to render your views. REST relies on the fixed data structures and iterative process to get the desired response. iii. Security challenges: API management done using REST has proven to be vulnerable to security threats over the web. According to NishuPrasher (2018) [5] the possibilities of the following security vulnerability possibilities in his thesis.
  • 4. International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020 4 Table 1. REST Security vulnerability possibilities Possibility Scenario Injection Attacks & message altering Unreliable SQL injection into API by a command Security Assurance SQL injection, parameter & path disclosure Authentication-based attacks Inadequate authentication. Hacking of web tokens. Denial of service (DoS) and buffer overflows API key/ Access token hacking if no threshold on too many requests Cross-site scripting/cross- site request forgery Also known as, XSS attack. REST APIs are vulnerable when malevolent code is injected as input to web services Man-in-the-middle (MITM) attacks Absence of TLS layer security in a REST API. Lack of transport level encryption Replay attacks and spoofing. REST APIs are vulnerable to spoofing of the valid transactions and the attacker could replay one valid transactions as would like. Insecure direct object references. REST APIs expose IDs to get resources. This results in direct exposure to internal objects Sensitive data exposure. Non Encrypted data exposure Missing function level access control Weak authentication validation in sensitive request handlers 4. GRAPHQL IN API MANAGEMENT GraphQL is an alternative and all new approach to interact with Web APIs. It is an open source data manipulation and querying language for APIs. It is dynamic, single endpoint interactive query based language to interact with APIs. Client systems using GraphQL can talk to the server on exactly what they need, the queries are written to interact the web on exactly what is required - nothing more or less. As an alternative to conventional RESTful service, GraphQL developed by FacebookÂź in 2012 & publicly released in 2015. On 7 November 2018, FacebookÂź transferred the GraphQL project to the lately established GraphQL Foundation, hosted by the non-profit Linux Foundation. Olaf Hartig et al (2017) [6] in his conference paper explains GraphQL as new type of Web-based data access interfaces that presents an alternative to the notion of REST-based interfaces & owing to this advantages over REST, since its release GraphQL has gained signiïŹcant momentum and has been adopted by an increasing number of users.
  • 5. International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020 5 4.1. GRAPHQL based API management – An alternative approach Kristopher Sandoval (2017) [7] in his research blog discussed about the potential benefits of using GraphQL. He also mentions that because GraphQL is extremely powerful, several providers who need stable readability with quick speed and indexing have used it. Most of the use cases for GraphQL are therefore those who require high data throughput with ease of sorting & represented clearly by its highest profile users. Data Fetching using Single Endpoint Data Fetch using GraphQL is a paradigm shift compared to working with REST APIs. REST APIs considered multiple specific endpoints to load the data. In GraphQL APIs typically a single endpoint is exposed and which in turns out to be more flexible for the client system to decide what data is actually needed. The below figure explains the difference of data fetch between REST API and GRAPHQL APIs. Figure 2: REST API Vs GraphQL API Source: Website, pinterest.com Resolution to Underfetching&Overfetching Overfetching means the API consumer downloads more information than actually required for his custom need. In Rest API, the only way user obtains the data is by accessing multiple endpoints. The Response might have additional information that the user requirement. This situation is Overfetching. Underfetching means API consumer downloads less information than actually required for his custom need. In Rest API, the only way user obtains the data is by accessing multiple endpoints. The Response might have less information that the user requirement. In this situation, the client will make additional request until the retrieval of required information. This situation is Underfetching. In GraphQL client, obtain exactly the data they need from an API. The below figure explains a sample GraphQL request query to fetch authors and relevant articles details in a single GraphQL query. It does not require two separate endpoints.
  • 6. International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020 6 Figure 3: GraphQL query to fetch students all classes in a school Schema Definition Language (SDL) Olaf Hartig et al (2019) [8] in his research paper has focussed on repurpose of schemas for graph databases that are based on the Property Graph model based the Schema Definition Language (SDL), originally meant as a language to define a so-called GraphQL schema that specifies different types of objects that can be queried when accessing a particular Web API. Therefore, the authors rearticulate definition of Schema Definition Language (SDL) from data usage standpoint -GraphQL uses a schema to articulate the shape of the data graph. This schema defines and describes a hierarchy of objects called types, populated from the backend database storage. Olaf Hartig et al (2018) [9] in his morning paper blog have put together many perspectives of quantitative definition of GraphQL schemas. One of the most popularly used definition explains GraphQL as edge-labelled multigraph where each node is associated with an object type and comprising of dictionary of properties. Property keys derives their as field names from set F. GraphQL schemas constructed over three sets: Fields (F), Arguments (A), and Types (T) As per the authors GraphQL graph over (F, A, T) is a representation of a tuple G = (N, E, τ, λ, r) where ‱ N is a set of nodes ‱ E is a set of edges of the form (u, f [α], v) where u, v € N, f € F and α is the partial mapping from A to Values ‱ τ: N Oт is a function, which assigns a type to every node in the system. ‱ λ is a partial function that assigns a scalar value v € Values or a sequence [v1, v2...vn] of scalar values where (vi € Values) of some pairs of the form (u, f [α]) where u € N, f € F and α is the partial mapping from A to Values. ‱ r € N is the distinguished node called root node of the graph system.
  • 7. International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020 7 Variety of Supported Type Definitions in GRAPHQL In order to have a better understanding of our work about relative study of GRAPH-QL vis-Ă -vis REST services in API management, we considered a quick appreciative recognition of various supported type definitions associated with GRAPHQL & the related scenario of their application. Table 2. GRAPHQL supported types Type Type description Includes Definition Primitive type Advanced type Heterogeneous type Data retrieval Insert / Update in API change Scalar Scalar types are the primitive types, single type for every scalar type Int Signed 32‐bit integer. X Float Signed double- precision floating- point value. X String UTF-8 compliant character sequence X Boolean True / False OR 1/0 decision enabling type X ID A unique identifier and is serialized as a string X Object Either a field or another object type of a combination Object type can constitute another Object type along with other scalars X X Query Object types by means of which data can be retrieved from multiple variables for a particular schema An explicit mention of the required fields mentioned in the query X X X Mutation API, which can alter data, types useful either by inserting or updating data already in the database. Type constitutes "Create" & " Update type" within Type Mutation X X X
  • 8. International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020 8 5. EXPERIMENT SCENARIO: RETREIVE SOCIAL MEDIA POST DATA As we discussed the shortcomings of data fetching using REST API based calls & categorically tried to explain the ease with which GRAPHQL has brought a paradigm shift to the fetching of user and related data from any website using typically a single endpoint. In the experiment, we have aimed to bring forth the advantage of right fetching of the data that is required compared the limitations of over fetching and underfetching using REST API based GET calls. GRAPHQL Based Query Engine Based on all the work that has been accomplished with GRAPHQL, we conceptualize GRAPHQL query engine would work as per the below block diagram. Figure 4: Conceptual GRAPHQL Query Execution Engine ‱ Schema is a tailored type language, which will return results back to the user. The user/client will request any number of fields and GRAPHQL server will return only the fields expected. ‱ The query optimization parser once parses the values, validated to be good by the schema validator, ‱ The resolvers proceeds towards processing the query & will return requisite data fields only. In the process of performing the experiment we have studied previous work of JobineshPurushothaman (2018) [10] on his complete guide to building a polyglot GraphQL Server lays down a foundational understanding to use GraphQL to its best for retrieving Social Media Posts. Our work derives inspiration from the same where he has provided lightweight understanding in his paper. In addition to the above, we have studied the work of Sebastian Eschweiler (2018) [11] on his lightweight approach by which a server can be implemented of its own and can be made ready to execute queries to retrieve data from any website.
  • 9. International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020 9 All codes provided in the below example are not in executable state and only for educational purpose used by the authors. It can help the reader to understand the approach to the retrieval but is not a verbatim source code. / Provisioning of resolver functions for schema field & Type definitions consttypeDefs = ` typequery{ post (id: Int!): Post user (id: Int!): User }, typepost { Post_id: Int user: User title: String }, typeuser { id: Int name: String email: String posts: [Post] }, `; / declare variable definitions for post and users for different users / Author names used for demo purpose varpost = [ { Post_id: 1, user: 1, title: ‘Sky is the limit’, }, { Post_id: 2, user: 2, title: 'Where knowledge is free and head is held high’ } ]
  • 10. International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020 10 Figure 5: Sample code to create API endpoints to retrieve data using GRAPHQL varuser = [ { User_id: 1, name: 'ShreyasiMajumder’, email: 'shmaj@yahoo.com’ }, { id: 2, name: ‘SayanGuha’, email: 'sguha@yahoo.com’ } ]; / Variables functions to getPost&getUser vargetPost=function (root, {id}) { returnpost.filter (post => { return post. Post_id === id; }) [0]; }; vargetUser= function (root, {id}) { returnuser.filter (user => { return user. User_id === id; }) [0]; }; / Provisioning of resolver functions for schema fields const resolvers = { query: { post: getPost, user: getUser, }, User: { posts: (user) => filter (post, {userId: user. id}), }, Post: { user: (post) => find (user, {postid: post.id}), }, }; / End of code required to create the API endpoints for data retrieval to work
  • 11. International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020 11 The authors hereby also draws attention to the work by Erik Wittern et al (2018) [12] y on the best utilization of GRAPHQL to query of the API endpoints. They mentioned to have analysed corpuses for common schema characteristics, naming conventions, and worst-case response sizes. Authors have extended the same understanding with the above case study, evaluated the retrieval time for the same API endpoint, and made a comparitive study with RESTful service based data retrieval in terms of throughput time. Extending the code shared already in Figure 4, we depict the retrieval of data by user query. Figure 6: Sample query to retrieve data from Social Media Website & related details of the user The query would provide the results and related user details in one query and working with one API endpoint Figure 7: Data Output from the Data retrieval query obtained from one API endpoint / Sample query definition to get all Post info and user information for the post in a single query queryInfoPostUser { post(id:1) { Post_id title user { User_id name email }} } / Sample query for data retrieval from a social media website & related details of the user of the post "data": { “post": {"Post_id": 1, "title":‘Sky is the limit’, "user": { "User_id": 1, "name":'ShreyasiMajumder’, "email":'shmaj@yahoo.com’ }} }
  • 12. International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020 12 6. PERFORMANCE EVALUATION: REST VS GRAPHQL Our work in evaluation of performance of REST Vs GRAPHQL is most closely related to MatheusSeabra et al (2019) [13] who has done a deep performance comparison study between REST and GRAPHQL in his conference paper. MatheusSeabra et al (2019) [13] mentioned that through research of performance metrics of response time and the average transfer rate between the requests, it was possible to deduce the particularities of each architectural model in terms of performance metrics. We observed that migrating to GraphQL resulted in an increase in performance in two-thirds of the tested application. Authors have carried out a Proof of Concept not by migrating from REST to GRAPHQL but creating sample API endpoints for REST and GRAPHQL and tested the same in open source playground and tested the throughput in terms of response time for data retrieval in 3 iterations i. Iteration1: We carried out Iteration1 with a data volume of 1,000 data records through one REST API and one GRAPHQL API endpoints. ii. Iteration 2: We carried out Iteration1 with a data volume of 10,000 data records through two REST API and one GRAPHQL API endpoints. iii. Iteration 3: We carried out Iteration1 with a data volume of 100,000 data records through three REST API and one GRAPHQL API endpoints. Performance evaluation for REST and GRAPHQL in the experiment based on the complexity definition assumed by the authors as combination of data volume and API endpoint weightage as below Table 3. Complexity definition for Data retrieval & Data Volume (following the experiment scenario) Complexity Considerat ion Perspectiv e Technology Platfor m No API Endpoint Considerat ion SIMPLE MEDIUM COMPLEX Complexity of Data retrieval REST 1 X 2 X 3 X GRAPHQL 1 X 1 X 1 X Complexity Considerat ion Perspectiv e Technology Platfor m Volume of Data SIMPLE MEDIUM COMPLEX Complexity of Data Volume ( no of records ) REST 1000 X 10000 X 1000000 X GRAPHQL 1000 X 10000 X 1000000 X
  • 13. International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020 13 Performance evaluation in response time (throughput) is as below. The results show: Iteration 1: Approximately marginal or no difference when we considered one API endpoint for both REST and GRAPHQL with the same volume of 1000 data records. Iteration 2: 35percentage lesser response time using GRAPHQL where 10 times higher data volume considered with respect to Iteration1 and our Iteration 2 was executed with 10000 data records. In Iteration 2, we considered two API endpoints in REST compared to only one API endpoint required in GRAPHQL. Iteration 3: When we increase the volume of data 100 times to the initial volume and execute Iteration 3 with 100,000 data records with three REST API endpoints being considered compared to only one API endpoint as required GRAPHQL. The authors have observed an approximate 40% less response time required in the experiment results in GRAPHQL. Figure 8: REST Experiment API Results Left – Relationship between the three dimensions (Volume, No of APIs and REST Response Time Right – Linear Trend of REST Response Time Plotted on data volume considered for three iterations of the experiment Figure 9: GRAPHQL Experiment API Results Left – Relationship between the three dimensions (Volume, No of APIs and GRAPHQL Response Time Right – Linear Trend of GRAPHQL Response Time Plotted on data volume considered for three iterations of the experiment
  • 14. International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020 14 The authors therefore considers ‱ The single API endpoint utilization in GRAPHQL as one of the key factors to determine the ease of availability of data as well as the response time with a constant data volume. ‱ High data volume experiment to check the relationship between the No of API Endpoints Vs the Response time to conclude and understand the implications of high volumes vs number of API endpoints. REST services produces low performance in response time compared to GRAPHQL. Authors therefore share one more observation with only two parameters No of API Endpoints & Response Time in REST and GRAPHQL testing the performance with only 1 Iteration in this case viz. 100,000 data records, which confirms the understanding of linear increase of REST in response time compared to GRAPHQL as below. Figure 10: No. API Endpoints Vs Response time relationship for a high volume 7. LIMITATIONS AND AREAS OF IMPROVEMENT The authors have observed that the performance of GRAPHQL considerably increases compared to the REST based API framework in situations where considerable data volume is considered. Researchers plausibly considers REST as the defacto standard in APIs, which have very less number of entities. The trade-off between the cost and architectural decision will favour REST with success & ease of use in simple request-response architectural designs. GRAPHQL on the other hand suits situations where data is required at scale, large number of entities are involved, and expected growth of the data is manifold. The response time in such cases with only one API interfaced for data retrieval makes is relatively better choice for selection over REST. In the experiment, with a gradual increasing data volume, we have captured the performance of GRAPHQL relative to REST. Our results depict GRAPHQL capabilities of data retrieval are considerably better in such situation. We have not considered the caching implications of GRAPHQL, which could turn out to be costly, in cases where we need to write tailored GRAPHQL queries & therefore cannot store results cached from previous data operations. Our work lies within the boundaries of potential benefits of GRAPHQL in response time where data volume is huge and number of entities are large. The GRAPHQL based technology platform have limitations in single request–response based interaction & caching capabilities These areas of improvement of GRAPHQL ,we consider as subject to further research.
  • 15. International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020 15 8. CONCLUSION As studied, we have observed that GRAPHQL is increasing acceptability as preferred API management technology where performance metrics of response time and utilization of lesser number of API endpoints are key measuring criteria with high data volume. We acknowledge that REST has become an industry standard for companies and API management using REST endpoints have matured over period of time and GRAPHQL have a learning curve associated with it and with improved tooling functions over a period of time in future applications of GRAPHQL in fields like Business Intelligence will increase manifold. Our work, we trust will motivate upcoming avenues of future research where performance, data driven design and performance flexibility with lesser API interaction would take precedence. REFERENCES [1] MoussaTaifi, Yuan Shi. &YasinCelik (2015) “JENERGY: A Fault Tolerant Stateless Architecture for High Performance Computing”, https://www.researchgate.net/publication/303837779_JENERGY_A_Fault_Tolerant_Stateless_Archit ecture_for_Hig_Performance_Computing [2] JacekKopeckĂœ, Paul Fremantle & Rich Boakes (2014) “A history and future of Web APIs”, https://www.researchgate.net/publication/274527941_A_history_and_future_of_Web_APIs [3] Roy Thomas Fielding (2014) “Architectural Styles and the Design of Network-based Software Architectures”, https://www.ics.uci.edu/~fielding/pubs/dissertation/fielding_dissertation.pdf. [4] FestimHalili&YasinCelik (2018) “Web Services: A Comparison of Soap and Rest Services”, https://www.researchgate.net/publication/323456206_Web_Services_A_Comparison_of_Soap_and_ Rest_Services. [5] NishuPrasher (2018) “Security Assurance of REST API based applications”, https://ntnuopen.ntnu.no/ntnu- xmlui/bitstream/handle/11250/2502569/19973_FULLTEXT.pdf?sequence=1&isAllowed=y. [6] Olaf Hartig& Jorge PĂ©rez (2017) “An Initial Analysis of Facebook's GraphQL Language”, https://www.researchgate.net/publication/316686431_An_Initial_Analysis_of_Facebook's_GraphQL_ Language. [7] Kristopher sandoval (2018) “7 Unique Benefits of Using GraphQL in Microservices”, https://nordicapis.com/7-unique-benefits-of-using-graphql-in-microservices/ [8] Olaf Hartig& Jorge PĂ©rez (2017) “An Initial Analysis of Facebook's GraphQL Language”, https://www.researchgate.net/publication/316686431_An_Initial_Analysis_of_Facebook's_GraphQL_ Language. [9] Olaf Hartig& Jorge PĂ©rez (2018) “Semantics and complexity of GraphQL”, https://blog.acolyer.org/2018/05/21/semantics-and-complexity-of-graphql/ [10] JobineshPurushothaman (2018) “Building a Polyglot GraphQL Server”, https://static.rainfocus.com/oracle/oow18/sess/1526618246355001wDNO/PF/DEV6113_Purushotha man_15404417239460019Dyp.pdf. [11] Sebastian Eschweiler (2018) “Creating a GraphQL Server with Node.js and Express”, https://medium.com/codingthesmartway-com-blog/creating-a-graphql-server-with-node-js-and- express-f6dddc5320e1
  • 16. International Journal on Web Service Computing (IJWSC), Vol.11, No.2, June 2020 16 [12] Erik Wittern, Alan Cha, James C. Davis, Guillaume Baudart& Louis Mandel (2018) “An Empirical Study of GraphQL Schemas”, https://arxiv.org/pdf/1907.13012.pdf [13] MatheusSeabra, Marcos Felipe NazĂĄrio, & Gustavo Pinto (2019) “REST or GraphQL? A Performance Comparative Study”, https://www.researchgate.net/publication/335784769_REST_or_GraphQL_A_Performance_Compara tive_Study AUTHORS SayanGuha completed his Bachelors in Electronics & Communication Engineering in 2006. He have been serving Information Technology industry supporting Data Modelling & Architecture across business domains of Retail, Banking, and Insurance & Telecom. He is currently working with Cognizant technology Solutions and his area of interests are in the fields of Big Data Integration, API based data integration & Advanced analytics. ShreyasiMajumder completed her Bachelors in Computer Science & Engineering in 2005. She have been serving Information Technology industry supporting across business domains Retail, Manufacturing, Insurance & Telecom business domains. She is currently working with Cognizant Technology Solutions and her areas of interests are in the fields of Business Intelligence, Design thinking, Big Data & API based data integration and Advanced Analytics.