SQL Templates
SQL templates define the queries that power your API endpoints. flAPI uses Mustache templating syntax to create dynamic, parameterized queries.
Quick Example
-- sqls/customers.sql
SELECT
customer_id,
name,
email,
segment
FROM customers
WHERE 1=1
{{#params.segment}}
AND segment = '{{{params.segment}}}'
{{/params.segment}}
{{#params.active}}
AND active = {{{params.active}}}
{{/params.active}}
ORDER BY created_at DESC
LIMIT 100
Mustache Syntax
flAPI uses Mustache for template logic:
{{{variable}}}: Insert variable (triple braces for unescaped){{#variable}}...{{/variable}}: Conditional block (if variable exists){{^variable}}...{{/variable}}: Inverted block (if variable doesn't exist)
Available Context
In your SQL templates, you have access to:
params.*: Request parameters (query, path, headers)conn.*: Connection properties from configurationcontext.user.*: Authenticated user informationcache.*: Cache propertiesenv.*: Whitelisted environment variables
Next Steps
For comprehensive SQL templating documentation, see:
- SQL Templating Guide: Complete guide with examples
- Parameters: Define request parameters
- Validation: Validate input safely
- Endpoints Overview: Complete endpoint configuration
- Examples: See templates in action