Solicitud de proxy de complemento
Solicitud de proxy de complemento: kintone.plugin.app.proxy()
Ejecuta una API REST externa desde un complemento.
Realiza una solicitud HTTP a un punto de conexión especificado. Esta API permite enviar solicitudes a API web externas al tiempo que evita las restricciones entre dominios.
Configuración del conjunto de proxySi la API web externa requiere información confidencial, como claves secretas, utilice el comando Proxy Set Config API y Proxy Get Config API para guardar y recuperar estos datos para la API web externa.
Para obtener información sobre cómo guardar y recuperar datos en complementos, consulte el siguiente artículo:
Función
kintone.plugin.app.proxy(pluginId, url, method, headers, data, successCallback, failureCallback)
Parámetros
PARÁMETRO | TIPO | OBLIGATORIO | DESCRIPCIÓN |
---|---|---|---|
pluginId | Cuerda | Sí | El ID del complemento que ejecutará la API. |
URL | Cuerda | Sí | La dirección URL de la API que se va a ejecutar. |
method | Cuerda | Sí | El método HTTP. Especifique una de las siguientes opciones: GET / POST / PUT / DELETE . |
headers | Objeto | Sí | El encabezado de la solicitud. Los parámetros especificados aquí se enviarán con los parámetros que fueron guardados en el plug-in por el kintone.plugin.app.setProxyConfig() función. Para obtener más información, consulte el siguiente artículo: Configuración del conjunto de proxy Para ignorar este parámetro, ingrese {} . |
data | Objeto o cadena | Sí | Cuerpo de la solicitud Los datos especificados aquí se enviarán con los datos que se guardaron en el complemento por el kintone.plugin.app.setProxyConfig() función.Para obtener más información, consulte el siguiente artículo: Configuración del conjunto de proxy Solicitado solo para POST / PUT Solicitudes. Ignorado para GET / DELETE Solicitudes.En el caso de las solicitudes GET / DELETE establezca el parámetro en QueryString de la dirección URL en su lugar. |
successCallback | Función | Opcional | La función que se ejecutará una vez finalizada la solicitud. Los siguientes tres datos se pasarán como parámetros:
kintone.Promise un objeto de promesa que se puede cumplir con una matriz que contenga el cuerpo de la respuesta (cadena), el código de estado (número) y el encabezado de la respuesta (objeto) mencionados anteriormente. |
failureCallback | Función | Opcional | La función que se ejecutará cuando se produzca un error en la solicitud. El cuerpo de la respuesta se pasará al parámetro de función como una cadena. Si se ignora la devolución de llamada, un kintone.Promise un objeto de promesa que se puede cumplir con el cuerpo de respuesta (cadena) de la API de proxy del complemento de Kintone. |
Devuelve
Un kintone.Promise
object se devolverá si el objeto successCallback
o failureCallback
se ignoran los parámetros. De lo contrario, no se devolverá nada.
Páginas disponibles
Este método se puede utilizar en las siguientes páginas:
Páginas de escritorio:
- Lista de registros
- Detalles del registro
- Creación de registros
- Grabar Editar
- Gráfico
- Impresión
Páginas móviles:
- Lista de registros
- Detalles del registro
- Creación de registros
- Grabar Editar
- Gráfico
Solicitud de muestra
|
|
Solicitud de ejemplo mediante promesas
|
|
Condiciones para que los datos guardados se agreguen a la solicitud
Al utilizar kintone.plugin.app.proxy
, la información guardada en la configuración del plug-in se puede agregar automáticamente a la solicitud cuando se cumplen todas las condiciones siguientes:
- Las aplicaciones son las mismas
- Los plug-ins son los mismos
- El método HTTP es el mismo
- La URL de la API llamada matches (coincidencia directa, distingue entre mayúsculas y minúsculas).
Por ejemplo, si la siguiente API y URL se utilizan para guardar la configuración en el complemento, la información guardada en el complemento se agregará a la solicitud porque la URL coincide con el comienzo de la URL.
- URL especificada mediante Proxy Get Config API:
https://api.example.com/
A continuación, se llama a la siguiente API y URL para ejecutar una API web externa.
- URL especificada mediante Plug-in Proxy Request API:
https://api.example.com/operate.json
entonces las URL coincidirán y los datos guardados en el plug-in se añadirá a la solicitud.
Prioridad para múltiples ajustes de configuración
Si se guardan varias configuraciones en el complemento, la URL de la configuración que coincida con la mayoría de los caracteres con la URL llamada por kintone.plugin.app.proxy()
se dará prioridad.
Por ejemplo, el Proxy Set Config La API se utiliza para guardar las dos configuraciones siguientes en el complemento:
- Ajuste 1
- URL:
https://api.example.com/
- Header:
{ "Content-Type": "application/x-www-form-urlencoded" }
- URL:
- Ajuste 2
- URL:
https://api.example.com/foo/
- Header:
{ "Content-Type": "application/json" }
- URL:
Entonces kintone.plugin.app.proxy()
se llama para ejecutar una API web externa con la siguiente información:
- URL:
https://api.example.com/foo/operate.json
- Header:
{}
El encabezado de la solicitud que se envía cuando se ejecuta la API es { "Content-Type": "application/json" }
.
Encabezado de solicitud enviado al ejecutar API externas
El encabezado de solicitud especificado por esta API se anexa con el encabezado de solicitud de los ajustes de configuración que cumple las siguientes condiciones:
Condiciones para que los datos guardados se agreguen a la solicitud
Por ejemplo, al especificar el encabezado de solicitud para cada API de la siguiente manera:
- Proxy Set Config API
|
|
- Plug-in Proxy Request (esta API)
|
|
En este caso, se envía el encabezado de solicitud a continuación.
|
|
En pocas palabras, un complemento recupera automáticamente los datos guardados de la configuración de la aplicación en la que está instalado. A continuación, un plug-in recupera su poseer datos de configuración y anexa los datos a la solicitud cuando el método HTTP coincide y la URL de reenvío coincide con la de la API externa desde la que se llama kintone.plugin.app.proxy()
.
Cuerpo de la solicitud enviada al ejecutar API externas
El método HTTP POST
/ PUT
Al cuerpo de la solicitud especificado por esta API se le anexan opciones de configuración que cumplan las siguientes condiciones:
Condiciones para que los datos guardados se agreguen a la solicitud
Esto es lo mismo que ocurre con el encabezado de la solicitud. Sin embargo, las opciones de configuración solo se anexan cuando el tipo de cuerpo de solicitud especificado por esta API es un objeto, no cuando es una cadena.
El método HTTP GET
/ DELETE
Las opciones de configuración que cumplen las siguientes condiciones se anexan como una cadena de consulta al final de la cadena de consulta de la URL de la API externa especificada por esta API:
Condiciones para que los datos guardados se agreguen a la solicitud
Si la cadena de consulta no contiene ?
Para indicar el inicio de la cadena de consulta, se anexa automáticamente.
Por ejemplo, cuando el cuerpo de la solicitud y los parámetros de solicitud para cada API se especifican de la siguiente manera:
- Proxy Set Config API
|
|
- Plug-in Proxy Request (esta API)
url
:https://api.example.com?k=v
En este caso, la solicitud se envía a la siguiente URL.
https://api.example.com?k=v&k1=v1&k2=v2
Teclas duplicadas en varios ajustes de configuración
La dirección URL de la configuración que coincida con la mayoría de los caracteres con la dirección URL a la que llama kintone.plugin.app.proxy()
se priorizará si cumple las dos condiciones siguientes:
- Condiciones para que los datos guardados se agreguen a la solicitud
- Hay un valor duplicado en la clave de encabezado de la solicitud
Si el método HTTP es POST
/ PUT
, el tipo de valor especificado en el encabezado de la solicitud es un objeto. Si el método HTTP es GET
/ DELETE
, se aplica a una cadena de consulta.
Por ejemplo, al especificar el encabezado de solicitud para cada API de la siguiente manera:
- Proxy Set Config API
|
|
- Plug-in Proxy Request (esta API)
|
|
En este caso, se envía el encabezado de solicitud a continuación.
|
|
Cuando las opciones de configuración y el encabezado de la solicitud o la clave del cuerpo de la solicitud especificada por la API se superponen
Si las claves de los encabezados de solicitud adoptados de los datos de solicitud configurados se superponen con el encabezado de solicitud especificado por esta API, el valor anterior tendrá prioridad.
La misma regla se aplica al cuerpo de la solicitud cuando el método HTTP es POST
/ PUT
, pero solo si el tipo es un objeto.
No se comprueban las claves duplicadas GET
/ DELETE
Solicitudes.
Por ejemplo, al especificar el encabezado de solicitud para cada API de la siguiente manera:
- Proxy Set Config API
|
|
- Plug-in Proxy Request (esta API)
|
|
En este caso, se envía el encabezado de solicitud a continuación.
|
|
Notas
- Especificación de un valor inexistente
url
devolverá un código de estado de error de503 (DNS Cache Missing)
. - Si el dominio de origen de la solicitud tiene restricciones de IP e intenta acceder a otra aplicación en el mismo dominio, se puede permitir que las direcciones IP de kintone.com otorguen acceso al complemento. Puede encontrar una lista de direcciones IP utilizadas por Kintone en el siguiente artículo del sitio de ayuda:
Dominios y direcciones IP utilizados por Kintone - Tenga en cuenta que esto permite que cualquier dominio kintone.com acceda a la API. Por lo tanto, no se recomienda desde el punto de vista de la seguridad.
- Cuando utilice la API de REST de Kintone en su propio dominio de Kintone, utilice la solicitud de API de REST de Kintone en lugar de la
kintone.proxy()
API. Para obtener más información sobre la solicitud de API REST de Kintone, consulte el siguiente artículo:
Solicitud de API REST de Kintone - Al utilizar esta API para ejecutar API externas, las cookies que deben generarse en el destino de la API no se generan automáticamente.
- El
Content-Length
encabezado yTransfer-Encoding
los encabezados se agregan automáticamente si el método HTTP se establece enPOST
oPUT
. Si se establece explícitamente al realizar solicitudes, se producirá un error.
Limitaciones
- A continuación se indican las limitaciones de las respuestas de API externas que se van a ejecutar:
- El tamaño máximo del encabezado de respuesta desde el otro extremo del proxy es de 100 líneas y el tamaño máximo de cada línea es de 8,180 bytes.
- El tamaño máximo del cuerpo de la respuesta desde el otro extremo del proxy es de 10 MB. Se producirán errores si las líneas o los tamaños superan el máximo.
- Esta API solo puede manejar un cuerpo de caracteres de respuesta. No se admiten imágenes u otros datos binarios.
- No es posible la comunicación con los servidores mediante certificados autofirmados.