Aviso:

Para brindarle información de soporte completa de manera más rápida, el contenido de esta página ha sido traducido al español mediante traducción automática. Para consultar la información de soporte más precisa, consulte la versión en inglés de este contenido.

Configurar la función Advanced I/O

El directorio de la función Advanced I/O (functions/NewsApp_AIO) contiene los siguientes archivos:

  • El archivo principal de función DataStoreFetch.java
  • El archivo de configuración catalyst-config.json
  • Archivos de biblioteca Java en la carpeta lib
  • Archivos de dependencias .classpath y .project

Agregarás código en el archivo DatastoreFetch.java.

La función Advanced I/O obtiene el elemento de noticias de su tabla fuente en el Data Store y lo envía al componente client como una respuesta JSON.

Copia el código y pégalo en DatastoreFetch.java en el directorio functions/NewsApp_AIO.

DatastoreFetch.java
copy
import java.util.logging.Logger;
import java.util.ArrayList;
import java.util.logging.Level;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.catalyst.advanced.CatalystAdvancedIOHandler;
import com.zc.component.object.ZCRowObject;
import com.zc.component.zcql.ZCQL;
import org.json.JSONArray;
import org.json.JSONObject;
public class DatastoreFetch implements CatalystAdvancedIOHandler {
    private static final Logger LOGGER = Logger.getLogger(DatastoreFetch.class.getName());
    @Override
    public void runner(HttpServletRequest request, HttpServletResponse response) throws Exception {
        try {
            // Obtener el endpoint y el método HTTP
            String url = request.getRequestURI();
            String method = request.getMethod();
            if (url.equals("/fetchData") && method.equals("GET")) {
                String tableName = request.getParameter("tablename");
                // Consultar el Data Store usando ZCQL
                String query = "select title, url from " + tableName;
                ArrayList<ZCRowObject> rowList = ZCQL.getInstance().executeQuery(query);
                JSONObject data = new JSONObject();
                JSONArray content = new JSONArray();
                // Construir la respuesta JSON
                for (int i = 0; i < rowList.size(); i++) {
                    JSONObject rowData = new JSONObject();
                    JSONObject tableData = new JSONObject();
                    ZCRowObject row = rowList.get(i);
                    String title = (String) row.get("title");
                    String urlVal = (String) row.get("url");
                    rowData.put("title", title);
                    rowData.put("url", urlVal);
                    tableData.put(tableName, rowData);
                    content.put(tableData);
                }
                data.put("content", content);
                // Enviar respuesta de vuelta al client
                response.setContentType("application/json");
                response.getWriter().write(data.toString());
                response.setStatus(200);
            } else {
                // Solicitud inválida
                LOGGER.log(Level.SEVERE, "Error. Invalid Request");
                response.setStatus(404);
            }
        } catch (Exception e) {
            LOGGER.log(Level.SEVERE, "Exception in DatastoreFetch", e);
            response.setStatus(500);
        }
    }
}

View more

Última actualización 2026-03-20 21:51:56 +0530 IST

ENLACES RELACIONADOS

Advanced I/O Function Data Store ZCQL