• Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
S4PCADEMY_Logo
Twitter Linkedin Instagram
S4PCADEMY_Logo
Twitter Linkedin Instagram
CI/CD  ·  Linter  ·  Spectral  ·  Technical Articles

Cómo integré Spectral en mi canalización de DevOps para garantizar la calidad de la API

By s4pcademy 


Actualmente, me estoy enfocando ampliamente en la Integración y el Despliegue Continuos (CI/CD) dentro del contexto de la integración. Mi objetivo final es no solo garantizar la seguridad de mis procesos de integración durante el desarrollo y la implementación, sino también automatizar el proceso utilizando un conjunto de reglas adecuado.

En este contexto, me encontré con la publicación de blog de Vadim Klimov titulada «Cumplimiento del cumplimiento de una guía de estilo», que me inspiró a profundizar en el tema del linting de API.

https://blogs.sap.com/2022/10/18/api-contract-enforcement-of-compliance-with-a-style-guide/

Llegué a reconocer la importancia de usar herramientas de linting de API y adherirme a las guías de estilo. En consecuencia, decidí incorporar Spectral en mi canalización de DevOps para garantizar que mis API cumplan con los estándares requeridos.

Spectral es una herramienta valiosa para el mantenimiento de las API, ya que realiza el linting de las API comparando las especificaciones con un conjunto personalizado de reglas y asegurándose de que cumplan con las estructuras definidas. Proporciona una gama de reglas de lint integradas, que cubren una amplia gama de posibles problemas con la especificación de su API. También le permite escribir sus propias reglas personalizadas, lo que lo hace altamente personalizable. Al integrar Spectral en mi proceso de creación e implementación, pude analizar los resultados y realizar mejoras en mis API para garantizar que cumplieran con los estándares deseados. Para probar esta integración, creé un archivo YAML de ejemplo simple para establecer una canalización. El código de este archivo YAML es el siguiente:

trigger:
- master

variables:
  CONFIG_PATH: '$(Build.SourcesDirectory)/spectral.yaml'

steps:
- script: |
    npx @stoplight/spectral-cli lint "$(Build.SourcesDirectory)/SBU/spectral.yml" -r $CONFIG_PATH -o "$(Build.SourcesDirectory)/test-results/spectral-results.xml" -f junit
  displayName: 'Spectral Linting'
  continueOnError: false

- task: PublishTestResults@2
  inputs:
    testResultsFormat: 'JUnit'
    testResultsFiles: '$(Build.SourcesDirectory)/test-results/spectral-results.xml'
    failTaskOnFailedTests: true
    testRunTitle: 'Spectral Linting Results'
  displayName: 'Publish Spectral Test Results'

El activador «maestro» indica que la canalización se activa cuando se realizan cambios en la rama maestra del repositorio. La canalización contiene una variable CONFIG_PATH que contiene la ruta al archivo de configuración de Spectral. En el primer paso, se ejecuta el script npx @stoplight/spectral-cli lint para comprobar la especificación de la API. Se hace referencia al archivo de configuración a través de la variable CONFIG_PATH, y los resultados de la verificación se guardan en formato JUnit en el archivo spectral-results.xml. Si se producen errores durante la comprobación, la tarea marcará la canalización como fallida.

Una vez que mi tubería se haya completado con éxito, se mostrará el siguiente resultado:

La%20imagen%20representa%20una%20tubería%20ejecutada%20que%20fue%20correcta.

La imagen muestra una ejecución de canalización que se realizó correctamente.

La canalización se ejecutó correctamente y un proceso posterior ahora podría implementar la API.

En caso de error, se mostraría lo siguiente:

La%20imagen%20muestra%20una%20tubería%20ejecutada%20que%20encontró%20errores.

La imagen muestra una ejecución de canalización que encontró errores.

Esta%20imagen%20muestra%20los%20resultados%20del%20filting%20junto%20con%20un%20%20XML%20archivo adjunto.

Esta imagen muestra los resultados de pelusa junto con un archivo adjunto XML.

Mi canalización ha fallado y está registrado en mi informe de ejecución de prueba. Spectral ha determinado la causa exacta para mí y la ha guardado en un archivo separado. Además de poder monitorear la calidad del desarrollo, también puedo asegurarme de que las API se implementen solo si cumplen con mi conjunto de reglas definido.

La integración de Spectral en mi proceso de DevOps mejoró la calidad y el cumplimiento de los estándares de mis API. Fomentar la adopción de herramientas de linting de API como Spectral en las prácticas de DevOps es crucial para garantizar API estandarizadas y de alta calidad. Además, alivia la necesidad de garantizar que cada desarrollador haya configurado los requisitos previos requeridos localmente y me permite hacer cumplir mi conjunto de reglas de manera segura a través de la canalización.

¿Qué medidas ha tomado hasta ahora para garantizar la calidad del desarrollo de su API?




APIcalidadcanalizacióncomoDevOpsgarantizarIntegreparaSpectral

Artículos relacionados


User Experience Insights
Actividades posteriores: herramienta DTV para validar los datos en los sistemas ECC y S4 HANA Parte -2 (después de la conversión a S4 HANA)
Product Information  ·  SAP Customer Engagement Initiative  ·  SAP Influencing
Ha llegado el momento de volver a participar en los Proyectos de la Iniciativa de Compromiso del Cliente para la Gestión del Gasto
#EVENT  ·  Event Information  ·  innovation  ·  sap
Las 3 razones principales para asistir a SAP Data Unleashed
SAP Premium Engagement Forum Nordic 'SAP Build' (Copenhague, SAP Experience Center, 25 y 26 de abril de 2023)
Previo
批次确定在SAP S/4HANA Cloud生产模块中的配置和应用 | Blogs de SAP
Siguiente

Madrid

Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010

México

Paseo de la Reforma 26
Colonia Juárez,  Cuauhtémoc
Ciudad de México 06600

Costa Rica

Real Cariari
Autopista General Cañas, 
San José, SJ 40104

Perú

Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073

Twitter Linkedin Instagram
Copyright 2022 | All Right Reserved.