DEV Community

Cover image for Primeros pasos con SAP CAP: Crea tu primera API y servicio OData en minutos 🚀

Primeros pasos con SAP CAP: Crea tu primera API y servicio OData en minutos 🚀

1. Una pequeña introducción

Si estás buscando una forma sencilla de desarrollar APIs empresariales escalables con integración nativa en el ecosistema SAP, SAP CAP es para ti. Este tutorial te guiará desde la configuración inicial hasta tener un servicio OData funcional que puedas consumir.
SAP CAP es una herramienta que empodera a los desarrolladores para crear aplicaciones empresariales más rápido, con menos esfuerzo y de manera alineada con los ecosistemas SAP.
SAP CAP se basa en principios de desarrollo centrados en servicios (service-centric) y promueve las mejores prácticas de diseño, como el uso de Core Data Services (CDS) para modelar datos y generar servicios de forma declarativa.

2. Configuración del entorno

Siendo breve y simplificando, lo que vamos a crear es una aplicación backend JS basada en NodeJs usando el framework de SAP CAP.

Requisitos:
Node.js: https://nodejs.org/es
Instalar el CAP CLI con:

npm install -g @sap/cds-dk

Crea un nuevo proyecto:
cds init mi-primer-proyecto
Resultado de CDS INIT
cd mi-primer-proyecto
npm install

3. Desarrollar la aplicación

Crea un archivo en db/schema.cds con el siguiente contenido:

entity Books {
    key ID : Integer;
    title : String;
    author : String;
    stock : Integer;
}
Enter fullscreen mode Exit fullscreen mode

En SAP CAP, una "entidad" es una representación de un conjunto de datos estructurados dentro del modelo de dominio. Es similar a una tabla en una base de datos relacional.
Muestra cómo probar la consistencia del modelo ejecutando:

cds watch

Esto levanta un servidor local de desarrollo, sin embargo no vas a poder exponer el modelo que creaste, necesitarás declarar un nuevo servicio.

CDS WATCH sin servicio declarado

Crea el archivo srv/cat-service.cds:

using { Books } from '../db/schema';

service CatalogService {
    entity BooksProjection as projection on Books;
}
Enter fullscreen mode Exit fullscreen mode

Este archivo es la declaracion de un servicio llamado CatalogService.
Se está creando sobre Books una proyección llamada BooksProjection.
Una proyección permite seleccionar, filtrar o transformar datos de una entidad base, creando una vista personalizada de los datos.

CDS WATCH con el servicio declarado

4. Consume el servicio

Navega al endpoint generado automáticamente:
http://localhost:4004/
o también
http://localhost:4004/odata/v4/catalog/BooksProjection

Puedes usar Postman para hacer consultas:
GET http://localhost:4004/odata/v4/catalog/BooksProjection

Consulta GET usando Postman

$metadata

El endpoint $metadata devuelve un archivo en formato XML que incluye:

  1. Entidades y sus propiedades
  2. Relaciones entre entidades: Expone cómo las entidades están vinculadas (por ejemplo, relaciones uno a muchos).
  3. Acciones y funciones: Si el servicio tiene lógica personalizada.
  4. Tipos de datos complejos: Detalla tipos personalizados que no son simples.

5. Agregar datos

Para agregar datos rápidamente puedes usar el siguiente comando:
cds add data
Este código va a agregar un csv por cada entidad con las cabeceras, puedes rellenar estos csv con datos de prueba.
Datos de prueba en CSV
Este sería el resultado final cuando se consume el servicio:
consumo de datos desde navegador

Usando postman:
Consumo de datos desde Postman

El servicio que se va a crear es OData, por lo tanto se puede filtrar usando los métodos de OData:

GET http://localhost:4004/odata/v4/catalog/BooksProjection?$filter=author eq 'J.D. Salinger'
cosumo de datos filtrados

Ahora que tienes un servicio básico funcionando, puedes extender tu aplicación conectándola a una base de datos como PostgreSQL, agregando lógica personalizada o incluso creando una interfaz Fiori Elements para visualizar los datos.

SurveyJS custom survey software

JavaScript UI Libraries for Surveys and Forms

SurveyJS lets you build a JSON-based form management system that integrates with any backend, giving you full control over your data and no user limits. Includes support for custom question types, skip logic, integrated CCS editor, PDF export, real-time analytics & more.

Learn more

Top comments (0)

Eliminate Context Switching and Maximize Productivity

Pieces.app

Pieces Copilot is your personalized workflow assistant, working alongside your favorite apps. Ask questions about entire repositories, generate contextualized code, save and reuse useful snippets, and streamline your development process.

Learn more