CsvHandler#

com.palmyralabs.palmyra.handlers.CsvHandler

Streams query results as CSV. Streaming is reactive, so exports scale without loading the full result set into memory.

Methods#

Method Signature
getHeaders default List<ColumnMeta> getHeaders()

Override getHeaders() to control the exported columns, their labels, and their order. Return null or an empty list to fall back to the schema’s declared fields.

Example#

import java.util.List;

import org.springframework.stereotype.Component;

import com.palmyralabs.palmyra.base.annotations.CrudMapping;
import com.palmyralabs.palmyra.handlers.ColumnMeta;
import com.palmyralabs.palmyra.handlers.CsvHandler;
import com.palmyralabs.palmyra.handlers.QueryHandler;

@Component
@CrudMapping(value = "/v1/admin/user/export.csv", type = User.class)
public class UserCsvHandler implements CsvHandler, QueryHandler {

    @Override
    public List<ColumnMeta> getHeaders() {
        return List.of(
            ColumnMeta.of("loginName", "Email"),
            ColumnMeta.of("firstName", "First Name"),
            ColumnMeta.of("lastName",  "Last Name"),
            ColumnMeta.of("createdAt", "Created On")
        );
    }
}