docs: sync wiki with the client-testability branch
Covers the parts of the branch that were not already documented, checked
against the generator source rather than the commit messages.
Generated endpoint results are now partial. `{Operation}EndpointResult`
is emitted as `partial class` rather than `sealed`, unconditionally and
with no marker-file flag. That is easy to confuse with
`generatePartialModels`, which is opt-in and applies to models only, so
every mention says so explicitly. Documented in API-Reference as part of
a new Client Types table, in Working-with-CSharp-Client-Testing as a way
to keep repeated test assertions next to the result, in
Working-with-How-To-Guides next to the existing partial-model guidance,
and in Migration-Guide as a no-action-required change. The typed client
class stays sealed; each page points at `I{ClientName}` instead.
ATC_API_SCH021 can break a build. The rule itself was already listed in
Analyzer-Rules, but nothing said that a project consuming a third-party
spec that declares `ProblemDetails` and building with
TreatWarningsAsErrors will now fail. Marker-Files documents the override
and the NoWarn escape hatch under Error Response Formats;
Migration-Guide gives it a subsection and drops the "purely additive"
framing that is no longer true. The old advice to fully qualify
`ProblemDetails` at the call site is removed - the shadowed second type
is no longer emitted, so the ambiguity it worked around cannot arise.
Polymorphic base placement. Working-with-OpenAPI already described
oneOf/anyOf as supported, which the branch makes true rather than
changes; the one genuinely new user-visible detail is that the base and
its converter land in its variants' Models namespace, and that a variant
outside that set gets a using. Added as a sibling of the three strategy
subsections since it applies to all of them.
Development-Notes had the most staleness. The snapshot section described
a workflow that no longer exists. It now covers the four master folders
and the fact that each holds its own marker file, hint-name file naming
flat in the folder, the three guard tests including
Snapshots_HaveNoOrphans, and the compilation gate with its shrink-only
ratchet - plus a step in "Adding a New Scenario" saying a new scenario
is expected to compile. Also corrected: ServerDomain is in the
compilation gate (its ratchet rows are derivative of their Server row),
PolymorphicTypeEmitter now lives in SourceGenerator alongside
RoslynSchemaExtractor, the sample folders are not nested under Minimal,
and Atc.Rest.Api.Client.Testing and the two ThirdParty sample folders
were missing. The hard-coded per-project test counts are dropped rather
than re-derived; they were wrong and would go stale again.
docs: add injectLogger documentation to How-To Guides
Documents the new injectLogger option for handler scaffolds:
- Marker file configuration example
- Generated output with ILogger<T> constructor injection
- Usage example with structured logging
- Note about existing files being preserved
docs: add How-To Guides page and sample project decision guide
New: Working-with-How-To-Guides.md with 4 practical recipes:
- Testing generated handlers (unit test patterns)
- Adding custom FluentValidation validators
- CI/CD auto-regeneration with GitHub Actions
- Extending records with partial classes
Updated: Showcase-Demo.md with "Which Sample Should I Use?" section:
- Decision table comparing all 7 sample projects
- Quick decision guide for common scenarios
- Generic run commands
Updated: _Sidebar.md with How-To Guides link