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