La API REST (transferencia de estado representacional) es un estilo arquitectónico que incluye restricciones específicas para crear API para garantizar que sean coherentes, eficientes y escalables. REST API es una colección de sintaxis y restricciones que se utilizan en el desarrollo y operación de servicios web que incluyen enviar y recibir información a través de su punto final , es decir, una URL que proporciona una interfaz para el entorno externo.
REST fue presentado por primera vez por Roy Fielding en 2000. La abstracción de información en REST se denomina recurso. REST usa un identificador de recursos para identificar el recurso particular en una interacción entre componentes. Permite que una aplicación acceda a recursos o funcionalidades disponibles en otro servidor que es remoto al dominio de arquitectura y seguridad de esa aplicación.
Teoría
REST utiliza métodos de recursos para realizar la transición deseada. Una API solo puede considerarse RESTful cuando cumple las siguientes condiciones:
- Interfaz Uniforme: Una interfaz bien definida entre el servidor y el cliente.
- Sin estado: Un estado se gestiona a través de las propias requests y no mediante el apoyo de un servicio externo.
- Almacenamiento en caché: las respuestas deben almacenarse en caché para mejorar la escalabilidad.
- Cliente-Servidor: Separación bien definida de cliente y servidor.
- Sistema en capas: el cliente no debe ser consciente de los intermediarios entre el cliente y el servidor.
- Código bajo demanda: la respuesta puede incluir lógica ejecutable por el cliente
Los 4 métodos de protocolo HTTP más importantes;
- GET: recupera datos de un servidor remoto y puede ser un solo recurso o una lista de recursos.
- POST: Crea un nuevo recurso en un servidor remoto. *
- PUT: Actualiza los datos en un servidor remoto.
- DELETE: Elimina datos de un servidor remoto.
La API REST se puede utilizar con cualquier idioma, ya que las requests se basan en el protocolo HTTP universal. En R Language , usamos el paquete httr y el paquete jsonlite para realizar una solicitud GET, analizar los resultados y, finalmente, revisar todos los datos. Esto requiere convertir los datos sin procesar de la solicitud GET al formato JSON y luego a un marco de datos analizados.
Implementación en R
El paquete
El paquete Plumber se utiliza para crear una API REST, como proporcionar datos para un panel de análisis, etc. Permite convertir fácilmente el código R en un punto final.
R
# Installing the package install.packages("plumber") # Loading package library(plumber)
Construyendo API usando el paquete
Usando el paquete de plomero construyendo una API. Haciendo dos archivos, uno es my_api.r que contiene todos los puntos finales y el segundo es server.r para cargar todos los puntos finales de la API iniciando el servidor.
mi_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) }
servidor.R
R
# Loading package library(plumber) # Routing API r <- plumb("api.R") # Running API r$run(port = 8000, swagger = TRUE)
Salidas:
- Función_normal:
La función normal se genera con rnorm() .
- API en ejecución:
El archivo api.R se ejecuta con el puerto 8000 y swagger es TRUE.
- Revertir() en Swagger:
Se le pide al mensaje de entrada que ejecute la función.
El mensaje de entrada se genera en formato JSON y encabezados de respuesta.
- Parcela() en Swagger:
La trama() se ejecuta con la interfaz de usuario de Swagger y también se puede ejecutar mediante una instrucción Curl.
El gráfico de barras se genera después de ejecutar plot() .
Los encabezados de respuesta se generan sin una respuesta predeterminada.
Por lo tanto, la API REST se utiliza en la industria del software y la industria de TI con el alcance completo a diario.