Concorde reference — Local API demos (offline). The Concorde doc site does not call fragile third-party APIs during yarn dev. A Service Worker and the Vite dev middleware serve /docs-mock-api/* on the same origin. Doc ID: docs/_misc/docs-mock-api. Keywords: Concorde, supersoniks, docs/_misc/docs-mock-api, docs-mock-api, Local API demos (offline), reference, yarn dev, /docs-mock-api/*, registerDocsMockApiServiceWorker(), /docs-mock-api-sw.js, /docs-mock-api/..., serviceURL="/docs-mock-api", src/docs/mock-api/urls.ts, DOCS_MOCK_REQRES_SERVICE, DOCS_MOCK_GEO_SERVICE, /docs-mock-api/api/users. URL: https://concorde.supersoniks.org/crawl/docs/_misc/docs-mock-api.html.
Local API demos (offline)
The Concorde doc site does not call fragile third-party APIs during yarn dev. A Service Worker and the Vite dev middleware serve /docs-mock-api/* on the same origin.
How it works
- On load,
registerDocsMockApiServiceWorker()registers/docs-mock-api-sw.js. - Requests to
/docs-mock-api/...are handled by the SW (production build) or Vite middleware (dev). - Live examples use
serviceURL="/docs-mock-api"and relative paths.
TypeScript constants: src/docs/mock-api/urls.ts (DOCS_MOCK_REQRES_SERVICE, DOCS_MOCK_GEO_SERVICE, …).
Routes
| Path | Used in |
|---|---|
/docs-mock-api/api/users |
sonic-list, sonic-fetch, sonic-queue (users) |
/docs-mock-api/api/users/:id |
Single user, docs-user |
POST /docs-mock-api/api/register |
sonic-submit — JSON, multipart/form-data (sendAsFormData), or application/x-www-form-urlencoded (native <form>); response includes parsed email + token |
POST /docs-mock-api/api/register/nested |
Wrapped body { data: { id, token } } for submit-result-key demo |
GET /docs-mock-api/api/register/echo |
Echoes query string (method="get" on submit) |
GET /docs-mock-api/auth/token |
API configuration — tokenProvider (Basic or eventsApiToken) |
GET /docs-mock-api/api/config/protected |
Bearer / Basic; docs-mock-stale-token → 498 |
GET /docs-mock-api/wording/labels |
Wording batch (labels[], lang) |
/docs-mock-api/geo/communes |
Geo list, @get demos |
/docs-mock-api/jokes/joke/:category |
JokeAPI-shaped list (key="jokes" on queue/list) |
Filtres GET /jokes/joke/…
| Query | Meaning |
|---|---|
amount |
Max jokes per request when not using offset |
offset + limit / per_page |
Pagination for sonic-queue lazy load |
contains |
Substring on joke text, setup/delivery, categories (input demo, name="contains") |
lang |
fr or en — filters the local dataset (select demo, name="lang") |
blacklistFlags |
Comma-separated flags to exclude (nsfw, religious, political, racist, sexist, explicit) — checkbox/radio/switch « Remove following jokes » demos; each joke has matching flags in fixtures |
Pagination GET /api/users
| Query | Meaning |
|---|---|
offset + per_page |
Index-based slice on the filtered set — sonic-queue (offset=$offset&per_page=$limit) |
page + per_page |
1-based page — static fetch examples (?page=2) |
limit |
Alias of per_page |
q |
Search on first name, last name, email (optional; sonic-queue + dataFilterProvider, field name="q") |
ALTCHA (sonic-captcha) is not mocked — it still uses the Supersoniks service.
In TypeScript demos, import from src/docs/mock-api/urls.ts (e.g. DOCS_MOCK_REQRES_SERVICE on serviceURL).
Source files
src/docs/mock-api/— router, fixtures, service worker,urls.tsscripts/docs-mock-api-vite-plugin.ts— SW build + middlewarepublic/docs-mock-api-sw.js— generated onyarn dev/yarn build-docs
yarn dev # mock API on by default
yarn build-docs # includes SW bundle