Saltar al contenido

Objeto DESCANSO

Descripción General

Los objetos REST permiten a los desarrolladores de Vinyl utilizar APIs REST de forma similar a los objetos de datos de Vinyl. Los objetos REST admiten lo siguiente:

  • operaciones CRUD
  • Integración con varios controles de Vinyl, como listas y paneles de varias filas/una sola fila
  • Eventos personalizados
  • Clasificación
  • Filtrado (cadena de consultar de filtro de estilo OData )

Para las APIs REST que admiten operaciones de estilo CRUD, configurar un objeto REST puede ser una manera fácil de integrar una API con su aplicación Vinyl.

Extremos CRUD

Para una API REST de estilo CRUD, querrá configurar Extremos que permitan crear, leer, actualizar y eliminar registros. En general, esto significa configurar los siguientes Extremos:

Operación Método URL de ejemplo
Crear PUBLICAR en un recurso de colección https://api.example.com/rest/v1/customers
Leer OBTENER de un recurso de colección https://api.example.com/rest/v1/customers
Actualización PUT o PUBLICAR en un recurso de artículo https://api.example.com/rest/v1/customers/<customerId>
Eliminar ELIMINAR de un recurso de artículo https://api.example.com/rest/v1/customers/<customerId>

Configuración de Ejemplo de API REST de Vinyl

Los pasos siguientes demuestran cómo configurar extremos CRUD para un servidor Vinyl REST. En este ejemplo asumiremos que existe una tabla como:

Columna Atributos Tipo lógico
ID de cliente Clave principal Cadena
Nombre Cadena
DíasActivo Entero

Esta API REST se expone desde el extremo "northwinds" como un recurso llamado "clientes". Por lo tanto, la URL para llegar a este extremo sería:

https://api.example.com/rest/v1/northwinds/customers

Asegúrese de haber configurado la API REST en su servidor y creado la fuente de datos REST antes de continuar.

Leer Extremo

  • Vaya a IDE > Servidores de datos > Su servidor de datos REST > Detalles
  • Haga clic en + Extremo en el panel Extremos y configure la siguiente información:
    • Nombre: clientes (obtener)
    • Extremo: clientes
    • Método: OBTENER
  • Clic en Guardar**
  • Haga clic en Descubrir
  • Vuelve a la pagina anterior
  • Seleccione su extremo clientes (obtener)
  • Observe que hay tres tablas de salida.
  • Haga doble clic en la tabla clientes (obtener)/artículos
  • Establezca la columna customerId como clave principal
  • Asegúrese de que las columnas utilicen el tipo de almacenamiento esperado.
  • Haga clic en Resultados y verifique que los datos devueltos sean los esperados.

Crear

  • Vaya a IDE > Servidores de datos > Su servidor de datos REST > Detalles
  • Haga clic en + Extremo en el panel Extremos y configure la siguiente información

    • Nombre: clientes (insertar)
    • Extremo: clientes
    • Método: PUBLICAR
    • Entrada de muestra - Vinyl espera que la entrada esté en el siguiente formato:

      {
        "item": {
          "customerId": "abcde",
          "name": "Test Customer",
          "daysActive": 10
        }
      }
      
  • Clic en Guardar**

  • Haga clic en Descubrir
    • Tenga en cuenta que hacer clic en Descubrir más de una vez puede provocar una infracción de la clave principal, ya que el registro 'abcde' ya existirá en el servidor. Si esto sucede, deberá eliminar el registro existente antes de que Discover funcione. Elimine el registro en el servidor API REST de Vinyl o configure e importe el extremo"Eliminar".
  • Vuelve a la pagina anterior
  • Seleccione su Extremo clientes (insertar)
  • Haga doble clic en la tabla clientes (insertar)
  • Establezca la columna customerId como clave principal
  • Establezca las columnas customerId, name y daysActive en la dirección Entrada/Salida.
    • Cuando creamos un registro, pasamos las tres columnas (Entrada). El servidor API REST de Vinyl repite estas columnas en el JSON (salida) devuelto. Si por alguna razón el servidor devolvió un valor diferente al que enviamos (tal vez formateando una cadena), querremos que nuestro registro contenga los valores devueltos.
  • Asegúrese de que las columnas utilicen el tipo de almacenamiento esperado.

Actualizar

  • Vaya a IDE > Servidores de datos > Su servidor de datos REST > Detalles
  • Haga clic en + Extremo en el panel Extremos y configure la siguiente información
  • Nombre: clientes (actualización)
  • Extremo: clientes/{{item/customerId}}
  • Método: PUBLICAR
  • Entrada de muestra - Vinyl espera que la entrada esté en el siguiente formato:

    {
      "item": {
        "customerId": "abcde",
        "name": "Test Customer (updated)",
        "daysActive": 10
      }
    }
    
  • Clic en Guardar**

  • Haga clic en Descubrir
  • Vuelve a la pagina anterior
  • Seleccione su extremo clientes (actualización)
  • Haga doble clic en la tabla clientes (actualización)
  • Establezca la columna customerId como clave principal
  • Establezca las columnas customerId, name y daysActive en la dirección Entrada/Salida.
  • Asegúrese de que las columnas utilicen el tipo de almacenamiento esperado.

Objeto DESCANSO

Una vez que se hayan configurado sus Extremos CRUD, puede crear el objeto REST.

Crear Objeto REST

  • Vaya a IDE > Servidores de datos > Su servidor de datos REST > Detalles
  • Haga clic en Más > Superobjetos
  • Haga clic en + Objeto REST
  • Asigne un nombre a su objeto REST... asumiremos Clientes
  • Haga clic en el icono de marca de verificación para guardar
  • Haga clic en el icono de edición de lápiz
  • Habilite Insertar, Actualizar y Eliminar haciendo clic, según corresponda.
  • Haga clic en continuar o en el icono de marca de verificación para guardar

Configurar Composición Única

  • Haga clic en el icono Abrir registro para el objeto REST.
  • Haga clic en el ícono Compilación única
  • Agregue la tabla clientes (obtener)/artículos al panel Tablas
  • Haga clic en el "*" botón para agregar todas las columnas
  • Haga doble clic en la columna customerId y configúrela como Clave principal
  • Revise cada columna por turno y establezca el Tipo de datos lógicos adecuadamente
  • Tenga en cuenta que si hace clic en Resultados antes de configurar Muchas composiciones (a continuación), recibirá el mensaje de error "Sin secuencia". Primero deberá configurar el objeto Muchos.
  • Regresar a la pantalla Objetos REST

Configurar Muchas Composiciones

  • Haga clic en el icono Muchas composiciones
  • Agregue la tabla clientes (obtener)/artículos al panel Tablas
  • Haga clic en el "*" botón para agregar todas las columnas
  • Establezca las columnas Destino en sus nombres de columna correspondientes
  • Haga doble clic en la columna customerId y configúrela como Clave principal
  • Haga clic en Resultados y verifique que ve los datos apropiados
  • Regresar a la pantalla Objetos REST

Configurar Extremos CRUD

Para cada lista de operación CRUD, configure el Extremo y los enlaces según la siguiente tabla:

Operación CRUD Extremo Enlace (objeto REST) Enlace (Extremo)
Eliminar clientes (eliminar) ID de cliente artículo/Id. de cliente
Insertar clientes (insertar) ID de cliente artículo/Id. de cliente
" " díasActivo artículo/díasActivo
" " nombre artículo/nombre
Actualización clientes (actualización) ID de cliente artículo/Id. de cliente
" " díasActivo artículo/díasActivo
" " nombre artículo/nombre

Ahora debería poder hacer clic en el botón Resultados en su objeto REST y agregar/eliminar/actualizar filas.

Eventos Personalizados

Los objetos REST pueden definir eventos personalizados de manera similar a otros objetos de datos de Vinyl. Para agregar un evento personalizado a su objeto REST, deberá:

  • Crear un Extremo de evento personalizado
  • Crear una regla CRUD para insertar en el Extremo
    • Necesitará una aplicación configurada con la fuente de datos
  • Agregar un evento personalizado al objeto REST

Crear Extremo de Evento Personalizado

En Vinyl, se puede llamar a un evento personalizado en una mesa usando esta notación de URL:

https://example.com/rest/v1/northwinds/mytable(myevent)/{{primaryKeyColumn}}

Por ejemplo, si continuamos usando el ejemplo anterior, el siguiente Extremo apuntaría a un evento "mayúsculo" en la tabla "clientes":

customers(uppercase)/{{artículo/clienteId}}

Para configurar esto, haga lo siguiente:

  • Agregue un evento mayúscula a la tabla de Vinyl
  • Ahora configura el lado consumidor REST...
  • Vaya a IDE > Servidores de datos > Su servidor de datos REST > Detalles
  • Haga clic en + Extremo en el panel Extremos y configure la siguiente información

    • Nombre: clientes (mayúsculas)
    • Extremo: customers(uppercase)/{{artículo/clienteId}}
    • Método: PUBLICAR
    • Entrada de muestra - Vinyl espera que la entrada esté en el siguiente formato:

      {
        "item": {
          "customerId": "abcde"
        }
      }
      
  • Clic en Guardar**

  • Haga clic en Descubrir
  • Seleccione su extremo clientes (mayúsculas)
  • Haga doble clic en la tabla clientes (mayúsculas)
  • Establezca la columna customerId como Clave principal
  • Verifique que las direcciones de las columnas de salida y los tipos de almacenamiento sean los esperados.

Crear Regla CRUD de Evento Personalizado

Para llamar al extremo del evento personalizado desde su objeto REST, debe crear una regla que se inserte en el Extremo.

  • Vaya a App Workbench > Fuentes de datos > Seleccione su fuente de datos REST > Lógica
  • Seleccione el Extremo cliente (mayúscula)
  • Haga clic en + Regla en el panel Reglas y configure lo siguiente
    • Nombre: Cliente (mayúscula) Insertar
    • Propósito: CRUD
    • Acción: Insertar
    • Fuente de datos de origen/destino: su fuente de datos
    • Objetivo: clientes (mayúsculas)
  • Clic en Guardar**
  • Desde la pestaña Tablas:
    • Seleccione la columna customerId y establezca el artículo/customerId correspondiente como columna de destino.

Crear Evento en Mayúsculas en un Objeto REST

Ahora, para conectarlo todo, queremos crear el evento Uppercase en el objeto REST.

  • Vaya a App Workbench > Fuentes de datos > Seleccione su fuente de datos REST > Lógica
  • Haga clic en el ícono Eventos para su objeto REST
  • En el panel Eventos, haga clic en + Evento de tabla
  • Establezca el Nombre en Mayúsculas
  • Clic en Guardar**
  • En el panel Acciones, haga clic en Registrar existente
  • Seleccione la regla Insertar clientes (mayúsculas)
  • Clic en Guardar**
  • Insertar enlaces explícitos para customerId a customerId
  • Volver a la página de Eventos
  • Haga doble clic en Evento en mayúscula
  • Establezca el alcance de actualización en Fila

Debería estar todo listo para llamar al evento personalizado. Para probar, puede crear una página con un panel de varias filas que tenga un botón para llamar al evento.

Clasificación, Paginación y Filtrado: Tipo de Uso

Las siguientes secciones sobre Ordenación, paginación y filtrado describen la configuración del Tipo de uso en parámetros específicos. Los ejemplos dados son los nombres de parámetros que utiliza Vinyl cuando accede a Vinyl a través de una interfaz API REST. Si accede a otros extremos del servidor API REST externo, tendrán su propia lista única de nombres de parámetros y formatos de valores para ordenar, paginar y filtrar. La información presentada en estas secciones tiene como objetivo ayudarle a comprender qué son cada uno de los tipos de uso y cómo utilizarlos independientemente del nombre del parámetro utilizado por la API REST a la que está accediendo. Los parámetros de Vinyl API utilizados en estas secciones se documentan con más detalle en REST API artículo.

Clasificación

El tipo de uso que se ocupa de la clasificación es Solicitar clasificación.

  • Solicitar ordenación: establezca este tipo de uso en el parámetro REST que utiliza la API para ordenar. El nombre y el contenido de este parámetro los definirá el proveedor de API. Para este ejemplo utilizamos el nombre del parámetro Vinyl API de $sort.

Para Habilitar la Clasificación (con un Servidor Vinyl REST):

  • Vaya a IDE > Servidores de datos
  • Seleccione su fuente de datos REST
  • Haga clic en Detalles
  • En Parámetros del servicio web, haga clic en + Parámetro
  • Establecer tipo en Consulta
  • Establecer nombre en $sort
  • Dejar valor en blanco
  • Establezca el tipo de uso en Solicitar ordenación
  • Haga clic en el ícono marca de verificación para guardar

Ahora debería poder ordenar cualquier dato que se obtenga utilizando esta fuente de datos Vinyl REST.

Paginación

Los tipos de uso que se ocupan de la paginación son Recuento de solicitudes, Límite de solicitudes, Desplazamiento de solicitudes, Número de página de solicitudes y Filas totales de respuesta.

  • Recuento de solicitudes: establezca este tipo de uso en el parámetro REST que utiliza la API para indicar que desea que se devuelva un recuento total de filas. Algunas APIs no devuelven automáticamente un recuento total en su respuesta y requieren un parámetro específico como activador. Para este ejemplo utilizamos el nombre del parámetro Vinyl API de $count.
  • Límite de solicitudes: establezca este tipo de uso en el parámetro REST que utiliza la API para indicar que desea que se devuelva un recuento total de filas. Algunas APIs no devuelven automáticamente un recuento total en su respuesta y requieren un parámetro específico como activador. Para este ejemplo utilizamos el nombre del parámetro Vinyl API de $limit.
  • Solicitar compensación: establezca este tipo de uso en el parámetro REST que utiliza la API para indicar en qué fila le gustaría comenzar a devolver datos. Para este ejemplo utilizamos el nombre del parámetro Vinyl API de $offset.
  • Solicitar número de página: establezca este tipo de uso en el parámetro REST que utiliza la API para indicar en qué página le gustaría comenzar a devolver datos. Algunas APIs utilizan Número de página en lugar de Desplazamiento, o pueden ofrecer ambos. Debe definir solo uno para su extremo, no ambos. La API de Vinyl no define un parámetro para el número de página.
  • Filas totales de respuesta: establezca este tipo de uso en el parámetro REST que utiliza la API para devolver un recuento total de filas en la respuesta. Algunas APIs no devuelven automáticamente un recuento total en su respuesta y requieren un parámetro específico como activador. Consulte el tipo de uso de Recuento de solicitudes más arriba.

Para Habilitar la Paginación (con un Servidor Vinyl REST):

  • Vaya a IDE > Servidores de datos
  • Seleccione su fuente de datos REST
  • Haga clic en Detalles
  • En Parámetros del servicio web, haga clic en + Parámetro
    • Establezca Tipo en Consulta
    • Establecer nombre en $count
    • Establezca el valor en verdadero
    • Establezca el tipo de uso en Recuento de solicitudes
    • Haga clic en el ícono marca de verificación para guardar
  • En Parámetros del servicio web, haga clic en + Parámetro
    • Establezca Tipo en Consulta
    • Establecer nombre en $límite
    • Dejar valor en blanco
    • Establezca el tipo de uso en Límite de solicitud
    • Haga clic en el ícono marca de verificación para guardar
  • En Parámetros del servicio web, haga clic en + Parámetro
    • Establezca Tipo en Consulta
    • Establecer nombre en $offset
    • Dejar valor en blanco
    • Establezca el tipo de uso en Solicitar compensación
    • Haga clic en el ícono marca de verificación para guardar
  • Para todos los Extremos que admiten paginación, navegue hasta la tabla de Extremo que contiene el parámetro "recuento".
    • En nuestro ejemplo anterior, esta sería la tabla de clientes (obtener)
    • Establezca el tipo de uso de la columna de recuento en Filas totales de respuesta

El botón Cargar más filas ahora debería funcionar para cualquier dato obtenido de este Extremo.

Opciones de Visualización del Panel

Cuando configura un panel para mostrar datos de objetos REST, hay opciones disponibles en Edge Case que brindan control sobre cómo el panel muestra los registros. Puede controlar si Vinyl carga una cantidad determinada de registros junto con el botón Cargar más filas, o si muestra una cantidad determinada de registros junto con controles de navegación de paginación en la región de la barra de herramientas para cargar más registros.

Además, si la configuración de la API REST lo admite, puede establecer la cantidad de registros que Vinyl muestra inicialmente en el panel.

Para Cargar Más Filas
  • Navegue al panel usando el objeto REST como fuente
  • Vaya a Diseñar esta página
  • Vaya a Más > Edge Case para ver el panel.
  • Configure la Opción de paginación para Cargar más filas
Para Habilitar la Paginación
  • Navegue al panel usando el objeto REST como fuente
  • Vaya a Diseñar esta página
  • Vaya a Más > Edge Case para ver el panel.
  • Establezca la Opción de paginación en Paginación
Para Configurar el Número de Registros Iniciales Cargados
  • Navegue al panel usando el objeto REST como fuente
  • Vaya a Diseñar esta página
  • Vaya a Más > Edge Case para ver el panel.
  • Establezca Filas por solicitud en el valor numérico que desea cargar inicialmente

Filtración

Los tipos de uso que se ocupan del filtrado son Filtro de solicitud y Filtro de solicitud (OData). Establezca este tipo de uso en el parámetro REST que utiliza la API para filtrar. El filtro de solicitud es para un filtrado simple, mientras que el filtro de solicitud (OData) es para filtrar utilizando el estándar OData. Esta norma define diferentes condiciones de filtrado. La API de Vinyl utiliza un filtro de estilo OData como se usa en nuestro ejemplo. Consulte sus documentos API específicos para ver si el filtrado de OData es compatible antes de usarlo. Puede encontrar más información sobre el filtrado de OData aquí en estas Recomendaciones de API REST artículo.

Para Habilitar el Filtrado (con un Servidor Vinyl REST):

  • Vaya a IDE > Servidores de datos
  • Seleccione su fuente de datos REST
  • Haga clic en Detalles
  • En Parámetros del servicio web, haga clic en + Parámetro
    • Establezca Tipo en Consulta
    • Establecer nombre en $filtro
    • Dejar valor en blanco
    • Establezca el tipo de uso en Filtro de solicitud (OData)
    • Haga clic en el ícono marca de verificación para guardar

Ahora debería poder filtrar cualquier dato que se obtenga utilizando esta fuente de datos Vinyl REST.

El filtrado a través de un servicio REST admite lo siguiente:

Operadores

  • eq - Igual
  • neq - No es igual
  • gt - Mas grande que
  • ge - Mayor que o igual
  • lt - Menos que
  • le - Menor o igual

Limitaciones

  • Sin operadores aritméticos
  • No o no operadores lógicos
  • No hay operadores de agrupación.
  • Sin funciones de consultar
  • Sin alias de parámetros