ABAP RESTful Application Programming (RAP)

Llegó el momento de la lección clave, aquí es donde ABAP RESTful se hace presente en todo su explendor. Ciertamente, en lecciones anteriores pudimos conocer un poco de como es el comportamiento de ABAP SCP. Incluso, en la lección de Metadadata extention empezamos a estudiar funcionalidad más allá de lo convencional de ABAP. Sin embargo, es en este momento en donde estaremos creando un servicio OData, protocolo que permite la creación de API´s restfull.

Antes de llegar a la parte de la configuración de los objetos, es importante definir de qué se trata esto de ABAP RESTful Application Programming (RAP).

¿ Qué es REST ?

REST es una arquitectura que nos permite conectar varios sistemas basados en el protocolo HTTP, una de sus principales funciones es facilitar acceso a recursos remotos, o sea datos de otro servidor. Además, es importante mencionar que los datos son devueltos en un formato JSON o XML.

Arquitectura REST

Especificaciones de la Arquitectura REST

  • Interfaz Uniforme: Entrega de recursos, los cuales deben ser sustantivos en plural. Ej: alumnos, empleados, ordenes o materiales.
  • Stateless: Una llamada a una API no depende de otra.
  • Operaciones Especificas: Cada operación tiene un objetivo claro insertar. Ej: leer, actualizar o borrar.
  • Estándar en la sintaxis: Recursos accesibles desde la URI.
  • Cliente – Servidor: Un servidor expone recursos a muchos clientes a través de su API.

¿ Qué es RESTful ?

Ahora … ¿ Qué es RESTful ? RESTful son servicios WEB o APIs basados en la arquitectura REST, donde el cliente envía peticiones para recuperar o modificar recursos, y el servidor responde con el resultado; conecta dos sistemas y permite la comunicación entre ellos. Adicional, es importante mencionar que la arquitectura REST se caracteriza por utilizar las siguientes operaciones.

  • POST: Crea una nueva entrada en una tabla de base de datos.
  • GET: Recupera información del servidor.
  • UPDATE: Actualiza una entrada en la base de datos.
  • DELETE: Borra o elimina una entrada en la base de datos.

Entonces … ¿ Qué es ABAP RAP ? ABAP RESTful Application Programming Model (RAP), es el modelo de ABAP que permite crear interfaces, para consulta y manipulación de datos, acoplado a esta arquitectura REST. Es importante mencionar que esta interfaz permite optimizar la comunicación con aplicativos FIORI a través del protocolo OData.

Pero … ¿ Qué es ODATA ?

Muchos conceptos que aprender … tratando de ser breve, OData es un protocolo o un conjunto de reglas que definen las mejores prácticas para consumir servicios RESTful. Además, permite el uso de metadata que se encarga de la descripción del modelo de datos de las APIs. No obstante, si necesitas más información al respecto puedes acceder al siguiente enlace ODATA Protocol.

ABAP RESTful – Behavior Definition

Lo siguiente es definir que es un Behavior Definition, primero debemos tener presente que al momento de crear nuestro CDS hemos definido un modelo de datos, seguramente ya tienes bien claro que esto nos ayudará a extraer datos. Sin embargo, con los «Behavior Definition» podremos crear un objeto basado en el CDS que nos permita realizar las operaciones mencionadas previamente y exponerlas en un servicio ABAP RESTful.

Ahora que ya tenemos estos conceptos bien claros, es hora de ir a la práctica de ABAP RESTful Application Programming (RAP).

ABAP RESTful – Práctica

Nos vamos al explorador de proyectos y creamos un core data service de tipo Behavior Definition. Utilizamos la siguiente ruta:

Paquete > Core Data Services > New > Behavior Definition

Core Data Service

Colocamos una descripción y en la parte de Root Entity, damos click en browse y buscamos la Root View que creamos en lecciones anteriores. Específicamente aquí ABAP CDS View Root For Restful Programming.

ABAP Behavior Definition

Adicional, seleccionamos la opción «managed» en el «Implementation Type»:

abap rest api example

Se creará una plantilla con el código fuente inicial, es necesario adecuarla para que quede de la siguiente manera:

ABAP Rest

En la siguiente entrada estaremos haciendo la creación de un servicio WEB REST en ABAP con los objetos que hemos construido hasta el momento.