Código de programa para solicitudes REST
El código de programa C# que contiene los trabajos para RaptorXML+XBRL Server se define en el archivo C# Program.cs. Este código usa las clases que se definieron en el contenedor C# para API REST`para crear las solicitudes REST que se envían a RaptorXML+XBRL Server.
En el código de programa verá tres casos de uso con los que aprenderá a usar la API REST de RaptorXML+XBRL Server.
•Validar archivos XML de referencia con el comando valany de RaptorXML+XBRL Server. Se hace referencia al archivo de esquema de dentro del archivo XML y no es necesario proporcionar un argumento al comando.
•Validar dos archivos XML con el comando valany de RaptorXML+XBRL Server. Los dos archivos XML, además del archivo de esquema que se usa para validar, se cargan con el comando como cadenas de texto adjuntas. Una vez completadas las validaciones, los resultados se devuelven juntos.
•Cargar y transformar archivos XML con un archivo XSLT. Los dos tipos de archivos se cargan vía REST. El comando de RaptorXML+XBRL Server que se usa es xslt. Una vez completada la transformación, el programa obtiene el documento resultante.
Más abajo puede ver con más detalle el código de estos tres casos.
Subsanar errores
Si hay errores, la función HandleError que hay al final del código recupera el mensaje de error de la respuesta del servidor.
Caso 1: Validar un archivo XML de referencia (comando simple)
El código de programa de este caso usa clases y funciones del contenedor de la API REST para establecer y llevar a cabo la comunicación HTTP con RaptorXML+XBRL Server. Esta es la lógica del código:
RaptorXMLRESTAPI.Command | Indica el comando de RaptorXML+XBRL Server al que se llama, que es valany, y el archivo que se usa como argumento de ese comando. |
RaptorXMLRESTAPI.CommandResponse | Pone la respuesta del servidor a la solicitud de validación en la variable jsonResponse. Tenga en cuenta que los trabajos de validación se devuelven como "OK" o "Fallido". |
RaptorXMLRESTAPI.ResultDocument | Obtiene el documento de resultados devuelto por el servidor y, si no hay errores, muestra el resultado de la validación. |
Caso 2: Valida dos archivos XML en base a un archivo XSD (comando multiparte).
El código de programa de este caso usa la clase MultiPartCommand del contenedor de la API REST para establecer y llevar a cabo la comunicación HTTP con RaptorXML+XBRL Server. Como queremos cargar los archivos dentro del cuerpo de la solicitud, el encabezado del mensaje debe indicar que el tipo de contenido es multipart/form-data. La clase MultiPartCommand del contenedor se usa para establecer la comunicación HTTP REST en concordancia. El código de este caso está estructurado como sigue:
RaptorXMLRESTAPI.MultiPartCommand | Indica el comando RaptorXML+XBRL Server al que se llama, que es valany, y después usa la función AppendAttachment de la clase para cargar los dos archivos XML y el archivo de esquema. Los archivos se cargan como cadenas de texto. El servidor devuelve una respuesta con el resultado de la validación de los dos archivos; esta respuesta se almacena en la variable jsonResponse. |
RaptorXMLRESTAPI.fetchCommandResult | Obtiene el documento de resultados que devuelve el servidor y, si no hay errores, muestra el resultado de la validación. |
RaptorXMLRESTAPI.cleanupResults | Esta función del contenedor usa el método DELETE de HTTP para eliminar el documento de resultados, los archivos temporales y los documentos de error y resultados relacionados con el trabajo. |
Caso 3: Transformación XSLT de archivos XML y XSLT (comando multiparte)
El código de programa de este caso es parecido al del caso anterior y usa la clase MultiPartCommand para realizar una transformación XSLT y mostrar el resultado en una caja de mensaje. Los archivos XML y XSLT de la transformación se cargan con la solicitud. El comando XSLT deRaptorXML+XBRL Server también admite opciones, así que en este caso puede ver cómo añadir opciones con la interfaz REST (en el ejemplo para ello se usa la función RaptorXMLRESTAPI.AppendOption). A continuación comentamos los puntos principales del código.
RaptorXMLRESTAPI.MultiPartCommand | Indica el comando de RaptorXML+XBRL Server al que se llama, que es XSLT, y después usa (i) la función AppendAttachment de la clase para cargar los archivos XML y XSLT, y (ii) la función AppendOption para obtener opciones para la línea de comandos de comandos de RaptorXML+XBRL Server. Los archivos cargados se envían como cadenas de texto. El servidor devuelve una respuesta con el resultado de la validación de los dos archivos; esta respuesta se almacena en la variable jsonResponse. |
RaptorXMLRESTAPI.fetchCommandResult | Obtiene el documento de resultados que devuelve el servidor y, si no hay errores, muestra el resultado de la validación. |
RaptorXMLRESTAPI.cleanupResults | Esta función del contenedor usa el método DELETE de HTTP para limpiar el documento de resultados, los archivos temporales y los documentos de error y resultados relacionados con el trabajo. |