Building REST API using R Programming
Last Updated :
12 Oct, 2020
REST(Representational state transfer) API is an architectural style that includes specific constraints for building APIs to ensure that they are consistent, efficient, and scalable. REST API is a collection of syntax and constraints which are used in the development and operation of web services that include sending & receiving information through there endpoint i.e a URL providing an interface to the external environment.
REST was first presented by Roy Fielding in 2000. The abstraction of information in REST is termed as a resource. REST uses a resource identifier to identify the particular resource in an interaction between components. It allows an application to access resources or functionality available on another server which is remote to that application’s architectural and security domain.
Theory
REST uses resource methods to perform the desired transition. An API can only be considered RESTful when it meets the following conditions:
- Uniform Interface: A well-defined interface between the server and the client.
- Stateless: A state is managed via the requests themselves and not through the support of an external service.
- Cacheable: Responses should be cacheable in order to improve scalability.
- Client-Server: Well defined separation of client and server.
- Layered System: Client should be unaware of intermediaries between the client and the server.
- Code on Demand: Response can include logic executable by the client
The 4 most important HTTP protocol methods;
- GET: Retrieves data from a remote server and can be a single resource or a list of resources.
- POST: Creates a new resource on a remote server. *
- PUT: Updates the data on a remote server.
- DELETE: Deletes data from a remote server.
REST API can be used with any language as the requests are based on the universal HTTP protocol. In R Language, we use the httr package and jsonlite package to make a GET request, parse the results, and finally page through all the data. This requires converting the raw data from the GET request to JSON format and then into a parsed data frame.
Implementation in R
The Package
Plumber package is used to create REST API such as providing data for an analytics dashboard etc. It allows to easily convert R code into an endpoint.
R
# Installing the package
install.packages("plumber")
# Loading package
library(plumber)
Building API using package
Using the plumber package building an API. Making two files, one is my_api.r containing all endpoints and the second is server.r to load all endpoints of API by starting the server.
my_api.R
R
# Loading package
library(plumber)
#* Revert back the input
#* @param msg Input a message to revert
#* @get /revert
revert <- function(msg = "")
{
list(msg = paste0("The input message is: ",
msg, "'"))
}
#* Plotting a bar graph
#* @png
#* @get /plot
function(){
normal_func <- rnorm(60)
barplot(normal_func)
}
server.R
R
# Loading package
library(plumber)
# Routing API
r <- plumb("api.R")
# Running API
r$run(port = 8000, swagger = TRUE)
Outputs:
The normal function is output with rnorm().
The api.R file is run with port 8000 and swagger is TRUE.
The input message is asked to execute the function.
The input message is outputted in JSON format and response headers.
The plot() is executed with Swagger UI and can also be executed using a Curl statement.
The Bar graph is outputted after running the plot().
The response headers are generated without a default response.
So REST API is used in the Software industry and IT industry with the full scope on a daily basis.
Similar Reads
R Tutorial | Learn R Programming Language R is an interpreted programming language widely used for statistical computing, data analysis and visualization. R language is open-source with large community support. R provides structured approach to data manipulation, along with decent libraries and packages like Dplyr, Ggplot2, shiny, Janitor a
4 min read
R Programming Language - Introduction R is a programming language and software environment that has become the first choice for statistical computing and data analysis. Developed in the early 1990s by Ross Ihaka and Robert Gentleman, R was built to simplify complex data manipulation and create clear, customizable visualizations. Over ti
4 min read
R-Data Frames R Programming Language is an open-source programming language that is widely used as a statistical software and data analysis tool. Data Frames in R Language are generic data objects of R that are used to store tabular data. Data frames can also be interpreted as matrices where each column of a matr
6 min read
Read contents of a CSV File in R Programming - read.csv() Function read.csv() function in R Language is used to read "comma separated value" files. It imports data in the form of a data frame. The read.csv() function also accepts a number of optional arguments that we can use to modify the import procedure. we can choose to treat the first row as column names, sele
3 min read
R-Data Types Data types in R define the kind of values that variables can hold. Choosing the right data type helps optimize memory usage and computation. Unlike some languages, R does not require explicit data type declarations while variables can change their type dynamically during execution.R Programming lang
5 min read
Data Visualization in R Data visualization is the practice of representing data through visual elements like graphs, charts, and maps. It helps in understanding large datasets more easily, making it possible to identify patterns and trends that support better decision-making. R is a language designed for statistical analys
5 min read
apply(), lapply(), sapply(), and tapply() in R In this article, we will learn about the apply(), lapply(), sapply(), and tapply() functions in the R Programming Language. The apply() collection is a part of R essential package. This family of functions helps us to apply a certain function to a certain data frame, list, or vector and return the r
4 min read
R-Matrices R-matrix is a two-dimensional arrangement of data in rows and columns. In a matrix, rows are the ones that run horizontally and columns are the ones that run vertically. In R programming, matrices are two-dimensional, homogeneous data structures. These are some examples of matrices:R - MatricesCreat
10 min read
R-Operators Operators are the symbols directing the compiler to perform various kinds of operations between the operands. Operators simulate the various mathematical, logical, and decision operations performed on a set of Complex Numbers, Integers, and Numericals as input operands. R supports majorly four kinds
5 min read
Functions in R Programming A function accepts input arguments and produces the output by executing valid R commands that are inside the function. Functions are useful when we want to perform a certain task multiple times.In R Programming Language when we are creating a function the function name and the file in which we are c
5 min read