Skip to content

Survey

Endpoint para exportación de datos de surveys (censos y encuestas).

URLs

MétodoURLAcciónDescripción
GET/api/surveyListarLista todos los surveys disponibles
GET/api/survey/{id}/structureVisualizarExporta la estructura (preguntas) de un survey
GET/api/survey/{id}/answersVisualizarExporta las respuestas de un survey

Producción:

{connect-producao}/api/survey

Homologación:

{connect-homologacao}/api/survey

Autenticación

Todas las solicitudes requieren un token de acceso obtenido en el endpoint de Security. El token debe ser enviado en el header AccessToken.

Listar Surveys

Solicitud

Endpoint: GET {connect-producao}/api/survey

Headers:

AccessToken: {access_token}

Respuesta de Éxito

Estado: 200 OK

json
{
  "header": {
    "codigo": 1,
    "msg": "ok."
  },
  "data": [
    {
      "surveyId": "123",
      "surveyNome": "Encuesta de Satisfacción"
    }
  ]
}

Exportar Estructura

Solicitud

Endpoint: GET {connect-producao}/api/survey/{id}/structure

Headers:

AccessToken: {access_token}

Parámetros:

  • id (path): ID del survey

Respuesta de Éxito

Estado: 200 OK

json
{
  "header": {
    "codigo": 1,
    "msg": "ok."
  },
  "data": [
    {
      "chapterId": 1,
      "chapterNome": "Capítulo 1",
      "reg": [
        {
          "regId": "1",
          "regNome": "Pregunta 1"
        }
      ]
    }
  ]
}

Exportar Respuestas

Solicitud

Endpoint: GET {connect-producao}/api/survey/{id}/answers

Headers:

AccessToken: {access_token}

Parámetros:

  • id (path): ID del survey
  • page (query): Número de página (predeterminado: 1)
  • pageSize (query): Tamaño de página (predeterminado: 500)

Respuesta de Éxito

Estado: 200 OK

json
{
  "header": {
    "codigo": 1,
    "msg": "ok."
  },
  "data": {
    "page": 1,
    "pageSize": 500,
    "totalPages": 10,
    "answers": [
      {
        "answerDate": "2025-01-01T00:00:00Z",
        "userId": 123456,
        "respostas": {}
      }
    ]
  }
}

Ejemplo de Implementación

javascript
async function listarSurveys(accessToken) {
  const response = await fetch('{connect-producao}/api/survey', {
    method: 'GET',
    headers: {
      'AccessToken': accessToken
    }
  });

  if (!response.ok) {
    throw new Error(`Error ${response.status}: ${response.statusText}`);
  }

  return await response.json();
}

async function exportarEstructura(surveyId, accessToken) {
  const response = await fetch(`{connect-producao}/api/survey/${surveyId}/structure`, {
    method: 'GET',
    headers: {
      'AccessToken': accessToken
    }
  });

  if (!response.ok) {
    throw new Error(`Error ${response.status}: ${response.statusText}`);
  }

  return await response.json();
}

async function exportarRespuestas(surveyId, page, pageSize, accessToken) {
  const response = await fetch(`{connect-producao}/api/survey/${surveyId}/answers?page=${page}&pageSize=${pageSize}`, {
    method: 'GET',
    headers: {
      'AccessToken': accessToken
    }
  });

  if (!response.ok) {
    throw new Error(`Error ${response.status}: ${response.statusText}`);
  }

  return await response.json();
}

Documentación de la API Fanbase