Funciones sin servidor: objeto de solicitud y respuesta
Tabla de contenido
Objeto de solicitud:
Puede obtener todo el objeto de solicitud de la función usando el argumento "crmAPIRequest".
Supongamos que ha creado una función y ha definido dos argumentos. Ahora debe usar la misma función en dos webhooks diferentes y cada uno de ellos puede contener diferentes tipos y cantidades de información. Uno de ellos carga los datos como un objeto JSON, mientras que el otro los carga como un archivo CSV. Los dos son tipos de datos diferentes y pueden no estar disponibles en un argumento dentro de la función.
En este caso, puede hacer uso del argumento crmAPIRequest para obtener el contenido correspondiente.

El argumento "crmAPIRequest" se puede utilizar para obtener los datos de la información de "cuerpo", "parámetro", "encabezado" o "usuario". Con este único argumento, no es necesario crear varios argumentos dentro de la función, ya que almacena la información de forma dinámica desde la solicitud y la pone a su disposición dentro de la función.
Nota:
- No es necesario que pase valores manualmente a crmAPIRequest. CRM asigna el objeto de solicitud al argumento.
- Incluso así, si se pasa un valor al argumento crmAPIRequest, la información de la solicitud lo anulará.
Ejemplo de respuesta de salida de POSTMAN:

Objeto respuesta:
El usuario puede definir cómo será la respuesta de la API. Si el usuario quiere mostrar y obtener un código de respuesta en particular como respuesta de la función, puede especificarlo dentro de ella.
Además de los códigos de estado, el usuario también puede elegir obtener la respuesta en un determinado tipo de archivo, como JSON, HTML, texto, etc.

La crmAPIResponse en la función sirve como un argumento que permite determinar el tipo y el contenido de la respuesta de salida.
Código de estado
Hay solo algunos códigos de estado que a menudo se utilizan para identificar si se realizó con éxito lo llamada a la API o si se trató de una solicitud mal hecha. Puede definir el código de estado que se muestra por la llamada a la API.
El código de estado predeterminado es 200.
Para establecer el código de estado:
/**
Su lógica empresarial aquí
**/
response = Map();
// to override the status code to 204.
response.put("status_code",204);
return {"crmAPIResponse":response};
Tipo de contenido
Además de los códigos de estado, se puede configurar un formato diferente para la respuesta, la que usualmente se brinda como un objeto JSON.
El valor predeterminado de esta clave es application/json;charset=utf-8.
Para obtener la respuesta en formato de texto:
/**
Su lógica empresarial aquí
**/
response = Map();
// to override the content type, default is application/json
response.put("Content-Type","application/text");
return {"crmAPIResponse":response};
Encabezados
Los encabezados de respuesta son útiles para definir el tamaño y tipo de datos o archivo que se brinda como respuesta de la llamada a la API. En algunos casos, la gente prefiere ver los encabezados de respuesta, ya que son útiles para determinar el próximo curso de acción, es decir, la próxima llamada a la API.
El valor predeterminado de esta clave es {"Content-Disposition", "attachment;filename=response.json"}.
Para obtener los encabezados de respuesta:
/**
Su lógica empresarial aquí
**/
response = Map();
headers = Map();
headers.put("X-ZOHO-SOURCE","CRM");
headers.put("X-Frame-Options","SAMEORIGIN");
headers.put("X-RATELIMIT-LIMIT","60");
response.put("headers",headers);
return {"crmAPIResponse":response};
Cuerpo
El cuerpo de la respuesta contendrá la información que necesita enviar a terceros como respuesta a su solicitud.
El valor predeterminado del cuerpo está vacío.
Para obtener los encabezados de respuesta:
/**
Su lógica empresarial aquí
**/
response = Map();
body = "{<XML>}"
response.put("body",body);
return {"crmAPIResponse":response};