Ejemplo de operaciones de datos de la API web (JavaScript del lado del cliente)

Este artículo proporciona una comprensión común sobre los ejemplos de API web que utilizan JavaScript del lado del cliente. Si bien cada ejemplo se centra en un aspecto distinto de la API web de Microsoft Dataverse, todos ellos siguen un proceso y una estructura similares descritos en este tema.

Ejemplos de la API web mediante JavaScript del lado del cliente

Los siguientes ejemplos utilizan los patrones descritos aquí:

Muestra Grupo de ejemplo Descripción
Ejemplo de operaciones básicas de la API web (JavaScript del lado del cliente) Ejemplo de operaciones básicas de la API web Muestra cómo crear, recuperar, actualizar, eliminar, asociar y anular la asociación de registros de tabla de Dataverse (registros de entidades).
Ejemplo de datos de consulta de la API web (JavaScript del lado del cliente) Ejemplo de datos de consulta de la API web Demuestra cómo usar sintaxis y funciones de consulta de OData v4 así como funciones de consulta de Dataverse. Incluye una demostración de cómo trabajar con consultas predefinidas y usar FetchXML para realizar consultas.
Ejemplo de operaciones condicionales de la API web (JavaScript del lado del cliente) Ejemplo de operaciones condicionales de la API web Demuestra cómo realizar operaciones condicionales. El comportamiento de estas operaciones depende de los criterios que especifique.
Ejemplo de funciones y acciones de la API web (JavaScript del lado del cliente) Ejemplo de funciones y acciones de la API web Demuestra cómo usar funciones y acciones enlazadas y sin enlazar, incluidas acciones personalizadas.

Cómo descargar el código de origen del ejemplo.

El código de origen para cada ejemplo está disponible en GitHub. El vínculo para descargar cada ejemplo se incluye en la página individual de ese ejemplo.

Después de descargar el ejemplo, extraiga el archivo comprimido. Encuentre la solución para cada muestra dentro de la carpeta C# porque el proyecto está un proyecto de aplicación web ASP.NET vacío. Una solución Dataverse también se proporciona en la descarga que puede importar y ejecutar.

Nota

Ninguno de los dos, Visual Studio o ASP.NET es necesario para desarrollar JavaScript del lado del cliente para Dataverse. Sin embargo, Visual Studio proporciona una buena experiencia para escribir JavaScript.

Cómo importar la solución de Dataverse que contiene el ejemplo.

Dentro de cada proyecto encontrará un archivo de solución administrada de Dataverse. El nombre de este archivo dependerá del nombre del proyecto de ejemplo, pero el nombre de archivo terminará con _managed.zip.

Para importar la solución de Dataverse en el servidor de Dataverse, siga estos pasos:

  1. Extraiga el contenido del archivo zip descargado y busque el archivo de la solución de Dataverse, que también será un archivo zip. Por ejemplo, si ha descargado el ejemplo Basic Operations, busque el archivo zip de la solución de Dataverse con el nombre WebAPIBasicOperations\WebAPIBasicOperations_1_0_0_0_managed.zip.

  2. En la UI de Dataverse, vaya a Configuración > Soluciones. Esta página enumera todas las soluciones del servidor de Dataverse. Después de acabar de importar esta solución, el nombre de la solución para ese ejemplo aparecerá en esta lista (por ejemplo, Web API Basics Operations).

  3. Seleccione Importar y siga las instrucciones del cuadro de diálogo de importación para completar esta acción.

Cómo ejecutar el ejemplo para ver el script en acción

El programa de ejemplo se ejecuta como recurso web en Dataverse. La solución importada proporciona una página de configuración que le da una opción de mantener o de eliminar datos de ejemplo y un botón para iniciar el programa de ejemplo.

Para ejecutar el ejemplo, lleva a cabo lo siguiente:

  1. Desde la página Todas las soluciones en Dataverse, seleccione el nombre de la solución (por ejemplo: Operaciones básicas de la API web Enlace). Se abrirán las propiedades de la solución en una nueva ventana.

  2. Desde el menú de navegación izquierdo, seleccione Configuración.

  3. Seleccione Iniciar muestra para ejecutar el código de muestra.

Elementos comunes que se encuentran en cada ejemplo

En la siguiente lista se resaltan algunos elementos comunes que se encuentran en cada uno de estos ejemplos.

  • La función Sdk.startSample se llama cuando un usuario selecciona el botón Iniciar muestra de la página HTML. La función Sdk.startSample inicializa variables globales y pone en marcha la primera operación de la cadena.

  • La salida del programa y mensajes de error se envían a la consola de depurador del explorador. Para ver esta salida, abra la ventana de la consola primero antes de ejecutar el ejemplo. Pulse F12 para acceder a las herramientas de desarrollador, incluida la ventana de la consola, en el navegador Microsoft Edge.

  • Estos ejemplos usan la implementación nativa ES6-Promise del explorador para exploradores modernos que la admiten.

    No se requieren promesas. Pueden realizarse interacciones similares con funciones de devolución de llamada.

  • La función Sdk.request controla la solicitud en función de la información pasada en como parámetros. En función de la necesidad de cada ejemplo, los parámetros pasados pueden ser diferentes. Consulte el código de origen del ejemplo para obtener más detalles.

    /**
    * @function request
    * @description Generic helper function to handle basic XMLHttpRequest calls.
    * @param {string} action - The request action. String is case-sensitive.
    * @param {string} uri - An absolute or relative URI. Relative URI starts with a "/".
    * @param {object} data - An object representing an entity. Required for create and update actions.
    * @returns {Promise} - A Promise that returns either the request object or an error object.
    */
    Sdk.request = function (action, uri, data) {
      if (!RegExp(action, "g").test("POST PATCH PUT GET DELETE")) {
        // Expected action verbs.
        throw new Error(
          "Sdk.request: action parameter must be one of the following: " +
            "POST, PATCH, PUT, GET, or DELETE."
        );
      }
      if (!typeof uri === "string") {
        throw new Error("Sdk.request: uri parameter must be a string.");
      }
      if (
        RegExp(action, "g").test("POST PATCH PUT") &&
        (data === null || data === undefined)
      ) {
        throw new Error(
          "Sdk.request: data parameter must not be null for operations that create or modify data."
        );
      }
    
      // Construct a fully qualified URI if a relative URI is passed in.
      if (uri.charAt(0) === "/") {
        uri = clientUrl + webAPIPath + uri;
      }
    
      return new Promise(function (resolve, reject) {
        var request = new XMLHttpRequest();
        request.open(action, encodeURI(uri), true);
        request.setRequestHeader("OData-MaxVersion", "4.0");
        request.setRequestHeader("OData-Version", "4.0");
        request.setRequestHeader("Accept", "application/json");
        request.setRequestHeader(
          "Content-Type",
          "application/json; charset=utf-8"
        );
        request.onreadystatechange = function () {
          if (this.readyState === 4) {
            request.onreadystatechange = null;
            switch (this.status) {
              case 200: // Success with content returned in response body.
              case 204: // Success with no content returned in response body.
                resolve(this);
                break;
              default: // All other statuses are unexpected so are treated like errors.
                var error;
                try {
                  error = JSON.parse(request.response).error;
                } catch (e) {
                  error = new Error("Unexpected Error");
                }
                reject(error);
                break;
            }
          }
        };
        request.send(JSON.stringify(data));
      });
    };
    

    La función Sdk.request devuelve una promesa. Cuando la solicitud envuelta por la promesa está completa, se resuelve o se rechaza la promesa. Si se resuelve, se llamará a la función en el método then siguiente. Si se rechaza, se llamará a la función en el método catch siguiente. Si la función en el método then propiamente dicho devuelve una promesa, la cadena de operaciones en los métodos then consecutivos puede continuar. Devolver una promesa nos permite encadenar estas operaciones de ejemplo juntas de forma que sea preferida por muchos programadores a las funciones de devolución de llamada tradicionales. Para obtener más información sobre promesa, consulte Promesa de JavaScript.

Consultar también

Usar la API web de Dataverse
Ejemplos de la API web
Ejemplos de la API web (C#)

Nota

¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)

La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).