apiOutputJsonApi function

  1. @Preview(name: 'API Output - JSON:API')
Widget apiOutputJsonApi()

Implementation

@Preview(name: 'API Output - JSON:API')
Widget apiOutputJsonApi() {
  const requestBuilder = DataGridRequestBuilder(standard: ApiFilterStandard.jsonApi);

  final request = requestBuilder.buildRequest(
    page: 2,
    pageSize: 15,
    filters: {
      'category': const VooDataFilter(operator: VooFilterOperator.equals, value: 'electronics'),
      'price': const VooDataFilter(operator: VooFilterOperator.greaterThan, value: 100),
    },
    sorts: [
      const VooColumnSort(field: 'price', direction: VooSortDirection.descending),
      const VooColumnSort(field: 'name', direction: VooSortDirection.ascending),
    ],
  );

  final jsonOutput = const JsonEncoder.withIndent('  ').convert(request);

  return Material(
    child: Container(
      padding: const EdgeInsets.all(16),
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          const Text('JSON:API Request:', style: TextStyle(fontWeight: FontWeight.bold, fontSize: 16)),
          const SizedBox(height: 8),
          Container(
            padding: const EdgeInsets.all(12),
            decoration: BoxDecoration(
              color: Colors.grey.withValues(alpha: 0.1),
              borderRadius: BorderRadius.circular(8),
              border: Border.all(color: Colors.grey.withValues(alpha: 0.3)),
            ),
            child: SelectableText(jsonOutput, style: const TextStyle(fontFamily: 'monospace', fontSize: 12)),
          ),
        ],
      ),
    ),
  );
}