Data Export Implementation
Export user data, transactions, analytics to structured formats. Requires user authentication, access control, rate limiting to prevent abuse.
Data Export Endpoint
class DataExportController
{
public function export(Request $request)
{
$format = $request->query('format', 'json'); // json, csv, xlsx
$data = [
'user' => auth()->user(),
'orders' => auth()->user()->orders()->get(),
'transactions' => auth()->user()->transactions()->get(),
];
return match($format) {
'csv' => $this->exportCsv($data),
'xlsx' => $this->exportExcel($data),
'json' => response()->json($data),
};
}
private function exportCsv($data)
{
$csv = "ID,Name,Email\n";
$csv .= "{$data['user']->id},{$data['user']->name},{$data['user']->email}\n";
return response($csv, 200, [
'Content-Type' => 'text/csv',
'Content-Disposition' => 'attachment; filename="export.csv"',
]);
}
}
GDPR Compliance
- Verify user identity
- Log all exports
- Limit export frequency (once per day)
- Expire download links after 7 days
- Delete exported files from storage
Implementation timeline
Basic data export: 1 day. With GDPR compliance and multiple formats: 2–3 days.







