fix: repair cp1252-mangled em-dashes and ellipsis in the reference-app wiki
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
All four 06_reference_app pages round-tripped U+2014 (em-dash) and U+2026 (ellipsis) through cp1252 during earlier PowerShell edits; restored the characters and regenerated the wiki HTML + MCP modules.
This commit is contained in:
@@ -74,7 +74,7 @@
|
||||
<div data-md-component="skip">
|
||||
|
||||
|
||||
<a href="#domain-api-a-the-resource-axis" class="md-skip">
|
||||
<a href="#domain-api-the-resource-axis" class="md-skip">
|
||||
Skip to content
|
||||
</a>
|
||||
|
||||
@@ -860,7 +860,7 @@
|
||||
|
||||
|
||||
|
||||
<h1 id="domain-api-a-the-resource-axis">Domain & API — the resource axis</h1>
|
||||
<h1 id="domain-api-the-resource-axis">Domain & API — the resource axis</h1>
|
||||
<p>Every aggregate follows the same four-file slice
|
||||
(<a href="../../../lib/21_crud_template/">CRUD Template</a>); walk <code>parents</code> first, then
|
||||
<code>appointments</code> when you need foreign keys.</p>
|
||||
@@ -877,9 +877,9 @@
|
||||
</span><span id="__span-0-4"><a id="__codelineno-0-4" name="__codelineno-0-4"></a> db.py # ParentDocument(Parent, BaseDocument) + create_parent_repo()
|
||||
</span><span id="__span-0-5"><a id="__codelineno-0-5" name="__codelineno-0-5"></a> service.py # ParentCrudsService(CrudsServiceAdaptor[...]) + get_parent_service()
|
||||
</span><span id="__span-0-6"><a id="__codelineno-0-6" name="__codelineno-0-6"></a>interfaces/parents/
|
||||
</span><span id="__span-0-7"><a id="__codelineno-0-7" name="__codelineno-0-7"></a> routes.py # list/create/get/update/delete — names == operationIds
|
||||
</span><span id="__span-0-7"><a id="__codelineno-0-7" name="__codelineno-0-7"></a> routes.py # list/create/get/update/delete — names == operationIds
|
||||
</span></code></pre></div></td></tr></table></div>
|
||||
<p>Wiring happens in exactly one place — the composition root
|
||||
<p>Wiring happens in exactly one place — the composition root
|
||||
<code>init.py</code>:</p>
|
||||
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-1-1">1</a></span>
|
||||
<span class="normal"><a href="#__codelineno-1-2">2</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1"></a><span class="n">parent_repo</span> <span class="o">=</span> <span class="n">create_parent_repo</span><span class="p">()</span>
|
||||
@@ -899,7 +899,7 @@ single source of truth: <code>main.py</code> builds an <code>OpenAPIFirstApp</co
|
||||
<code>operationId</code> to a function of the same name in <code>interfaces/openapi.py</code> (a flat
|
||||
re-export of every routes module). There are no decorator routers.</p>
|
||||
<p>The x- extension fields on schemas and properties are what make the admin
|
||||
client render itself — see <a href="../../../lib/40_ui_admin/">Auto-Rendered Admin</a> and
|
||||
client render itself — see <a href="../../../lib/40_ui_admin/">Auto-Rendered Admin</a> and
|
||||
the worked <code>Job</code> schema (enum selects, hidden fields, filterable columns).</p>
|
||||
<h2 id="foreign-keys-appointments">Foreign keys (appointments)</h2>
|
||||
<p><code>Appointment</code> declares <code>pet</code>, <code>vet</code>, <code>treatment</code> as <code>dict | int | None</code>. The
|
||||
@@ -907,7 +907,7 @@ write path normalizes bare ids through <code>expand_ref</code>; the read path re
|
||||
fully expanded objects:</p>
|
||||
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-3-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-3-1"><a id="__codelineno-3-1" name="__codelineno-3-1"></a><span class="n">pet</span> <span class="o">=</span> <span class="k">await</span> <span class="n">expand_ref</span><span class="p">(</span><span class="n">svc</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="s2">"pet"</span><span class="p">),</span> <span class="n">body</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"pet"</span><span class="p">),</span> <span class="s2">"pet"</span><span class="p">)</span>
|
||||
</span></code></pre></div></td></tr></table></div>
|
||||
<p>The list endpoint additionally filters by date prefix and embedded fk ids —
|
||||
<p>The list endpoint additionally filters by date prefix and embedded fk ids —
|
||||
client-side over the repository result, the pattern for small reference data.</p>
|
||||
<h2 id="ids-on-the-wire">Ids on the wire</h2>
|
||||
<p>The domain models declare <code>id: int | None = None</code> and documents use the
|
||||
@@ -917,9 +917,9 @@ keeps the OpenAPI <code>id: integer</code> contract, the in-memory demo store, a
|
||||
Mongo persistence layer consistent.</p>
|
||||
<h2 id="tests">Tests</h2>
|
||||
<ul>
|
||||
<li><code>tests/integration/test_openapi_app_builds.py</code> — generic gate: every
|
||||
<li><code>tests/integration/test_openapi_app_builds.py</code> — generic gate: every
|
||||
<code>operationId</code> resolves and the app builds. Copy it verbatim.</li>
|
||||
<li><code>tests/unit/test_jobs_routes.py</code> — the pattern for route unit tests with a
|
||||
<li><code>tests/unit/test_jobs_routes.py</code> — the pattern for route unit tests with a
|
||||
service double (no HTTP client needed).</li>
|
||||
</ul>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user