Skip to content

Devin/1777647229 docs improvements#15

Merged
sheepla merged 4 commits into
masterfrom
devin/1777647229-docs-improvements
May 2, 2026
Merged

Devin/1777647229 docs improvements#15
sheepla merged 4 commits into
masterfrom
devin/1777647229-docs-improvements

Conversation

@sheepla

@sheepla sheepla commented May 2, 2026

Copy link
Copy Markdown
Owner

Open in Devin Review

Summary by CodeRabbit

  • Documentation
    • Added a comprehensive FAQ section addressing common questions and troubleshooting
    • Introduced a new Core Primitives guide with diagrams for type relationships
    • Enhanced quick-start guide with improved step-by-step formatting
    • Added NuGet package installation overview with package cards
    • Expanded endpoint groups guide with role-based authorization examples
    • Improved filters documentation with clearer explanations
    • Updated CSV export documentation with complete API parameter details

sheepla and others added 4 commits May 1, 2026 14:59
- Add astro-mermaid integration for Mermaid diagram rendering
- Fix RequireAuthorization() examples to use explicit roles/policies
- Add HEAD method to supported HTTP methods documentation
- Add CsvResponse.From full parameter reference
- Add NuGet LinkCard components to Installation page
- Rewrite Quick Start with Steps component and auto-registration notes
- Add IEndpoint interface detailed explanation to Defining Endpoints
- Create Core Primitives page with Mermaid flowchart and class diagram
- Improve Endpoint Groups page with concept explanation and API reference
- Improve Filters page with concept explanation
- Create FAQ page with 3 Q&As
- Add FAQ card to index page

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…olution

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented May 2, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This PR enhances the AxisEndpoints documentation site by adding mermaid diagram support, introducing new core-primitives and FAQ pages, expanding existing guide pages with clearer explanations and examples, restructuring getting-started pages with interactive steps, and improving navigation to make documentation more discoverable.

Changes

Documentation Site Enhancements

Layer / File(s) Summary
Build Infrastructure
docs/astro.config.mjs, docs/package.json
Integrates mermaid diagram support by importing astro-mermaid plugin and adding mermaid dependency; updates Astro sidebar config to add "Core Primitives" guide and "FAQ" section.
Core Reference Documentation
docs/src/content/docs/faq.mdx, docs/src/content/docs/guides/core-primitives.mdx
Adds new FAQ page addressing AxisEndpoints motivation, REPR pattern guidance, and OpenAPI schema troubleshooting; introduces comprehensive Core Primitives guide with interface/type reference, decision flowchart, and mermaid diagrams of type relationships.
Guide Enhancements
docs/src/content/docs/guides/defining-endpoints.mdx, docs/src/content/docs/guides/endpoint-groups.mdx, docs/src/content/docs/guides/filters.mdx
Adds introductory "What Is..." sections explaining IEndpoint interface variants/responsibilities, endpoint groups benefits, and filter registration; expands endpoint-groups with role-based authorization and group-level filter examples; clarifies authorization overload behavior.
Extension Documentation
docs/src/content/docs/extensions/csv-helper/csv-export.mdx
Adds reference section documenting CsvResponse.From parameter types, defaults, and usage example with custom configuration.
Getting Started Restructuring
docs/src/content/docs/getting-started/quick-start.mdx, docs/src/content/docs/getting-started/installation.mdx
Reformats quick-start with numbered Steps component for guided flow; adds "NuGet Packages (Recommended)" card grid to installation page highlighting AxisEndpoints and CSV extension packages.
Navigation & Discoverability
docs/src/content/docs/index.mdx
Adds FAQ card to homepage "Next steps" section to surface new FAQ page.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

Poem

🐰 New diagrams bloom with mermaid's grace,
Guides and FAQs light up the space,
Core types explained, step-by-step we go,
Documentation flourishes in vibrant flow!
Hop along, dear readers, all is clear. ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The PR title 'Devin/1777647229 docs improvements' is vague and generic. It uses non-descriptive terms like 'docs improvements' without conveying what specific documentation changes were made. Replace with a specific description of the main documentation changes, such as 'Add FAQ section, core primitives guide, and mermaid diagrams' or similar that reflects the primary improvements.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch devin/1777647229-docs-improvements

Review rate limit: 9/10 reviews remaining, refill in 6 minutes.

Comment @coderabbitai help to get the list of available commands and usage tips.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (2)
docs/src/content/docs/guides/filters.mdx (1)

10-13: ⚡ Quick win

Consolidate duplicated middleware-vs-filter explanation.

The new section at Line 10 overlaps with the existing “Difference from middleware” section later in the page (Line 74+). Keeping one canonical explanation will reduce drift.

Proposed cleanup
-## Difference from middleware
-
-`IEndpointFilter` differs from middleware in that it can be scoped to individual endpoints or groups, rather than applying globally to all requests.
-
 For a FluentValidation example using `IEndpointFilter`, see the [Validation](/guides/validation/) guide. For grouping endpoints, see the [Endpoint Groups](/guides/endpoint-groups/) guide.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/src/content/docs/guides/filters.mdx` around lines 10 - 13, Duplicate
explanation found in the "How It Differs from Middleware" section (heading)
which overlaps with the later "Difference from middleware" section; remove the
earlier block and either link to or merge its unique points into the canonical
later section (the "Difference from middleware" heading) so only one
authoritative explanation remains, update any internal anchors or references
that pointed to the removed heading to the canonical heading, and ensure
examples/phrasing from the removed paragraph are preserved if they add value to
the canonical section.
docs/src/content/docs/guides/core-primitives.mdx (1)

137-151: ⚡ Quick win

Avoid duplicating standard-type explanations.

Line 137–151 largely repeats earlier sections on IResult, ProblemDetails, and IEndpointFilter, which can drift over time. Consider reducing this to short pointers back to the primary sections.

Lean alternative
 ## Notes on ASP.NET Core Standard Types

-AxisEndpoints builds directly on ASP.NET Core standard types. The types below are not AxisEndpoints-specific, so standard Minimal API knowledge applies as-is.
-
-### `IResult`
-
-This interface is provided by ASP.NET Core Minimal APIs and represents an HTTP response. It is produced by factory methods such as `Results.Json()`, `Results.Problem()`, `Results.Ok()`, and `Results.NotFound()`. In AxisEndpoints, specifying `IResult` as the return type of `HandleAsync` lets you return different response shapes based on the outcome, such as JSON on success and `ProblemDetails` on error.
-
-### `ProblemDetails`
-
-`Microsoft.AspNetCore.Mvc.ProblemDetails` provides the standard error response format defined by RFC 9457 (formerly RFC 7807). It includes fields such as `type`, `title`, `status`, `detail`, and `errors`, which bring consistency to API error responses. AxisEndpoints' DataAnnotations validation filter also returns validation errors in this format.
-
-### `IEndpointFilter`
-
-This filter interface is provided by ASP.NET Core Minimal APIs and lets you insert logic into the request pipeline. Unlike middleware, it can be scoped to specific endpoints or groups, which gives you finer control over cross-cutting concerns.
+AxisEndpoints builds directly on ASP.NET Core standard types. For details, see the sections above:
+
+- [`IResult`](`#iresult`)
+- [`ProblemDetails`](`#problemdetails`)
+- [`IEndpointFilter`](`#iendpointfilter`)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/src/content/docs/guides/core-primitives.mdx` around lines 137 - 151, The
section repeating explanations for IResult, ProblemDetails, and IEndpointFilter
should be collapsed into a short pointer to the canonical descriptions to avoid
duplication; remove the repeated paragraphs under "Notes on ASP.NET Core
Standard Types" and replace them with a concise paragraph that references the
primary sections (e.g., "See the IResult, ProblemDetails, and IEndpointFilter
sections above") and retains a single sentence noting that HandleAsync may
return IResult and that ProblemDetails is used for validation errors—keep
references to the symbols IResult, ProblemDetails, IEndpointFilter, and
HandleAsync so readers can find the detailed explanations elsewhere.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/src/content/docs/getting-started/quick-start.mdx`:
- Line 95: The docs hardcode the endpoint URL "http://localhost:5000/users";
update the verification step to avoid a fixed port by using a placeholder or
referencing the app's configured base URL (e.g., "http://localhost:{PORT}/users"
or "the base URL printed when you start the server") and adjust the sentence to
instruct users to substitute their actual port or use the server's shown URL
instead of 5000.

In `@docs/src/content/docs/guides/core-primitives.mdx`:
- Around line 68-75: The table incorrectly lists the `errors` field as part of
base ProblemDetails; update the docs so the `ProblemDetails` field list (and the
related wording around `ProblemDetails` at the other occurrence) no longer
mentions `errors`, and instead add a brief note that `errors` is provided by
`ValidationProblemDetails` (or point readers to `ValidationProblemDetails` for
validation-specific error details); reference the `ProblemDetails` and
`ValidationProblemDetails` symbols and the `errors` field when making the
correction.

---

Nitpick comments:
In `@docs/src/content/docs/guides/core-primitives.mdx`:
- Around line 137-151: The section repeating explanations for IResult,
ProblemDetails, and IEndpointFilter should be collapsed into a short pointer to
the canonical descriptions to avoid duplication; remove the repeated paragraphs
under "Notes on ASP.NET Core Standard Types" and replace them with a concise
paragraph that references the primary sections (e.g., "See the IResult,
ProblemDetails, and IEndpointFilter sections above") and retains a single
sentence noting that HandleAsync may return IResult and that ProblemDetails is
used for validation errors—keep references to the symbols IResult,
ProblemDetails, IEndpointFilter, and HandleAsync so readers can find the
detailed explanations elsewhere.

In `@docs/src/content/docs/guides/filters.mdx`:
- Around line 10-13: Duplicate explanation found in the "How It Differs from
Middleware" section (heading) which overlaps with the later "Difference from
middleware" section; remove the earlier block and either link to or merge its
unique points into the canonical later section (the "Difference from middleware"
heading) so only one authoritative explanation remains, update any internal
anchors or references that pointed to the removed heading to the canonical
heading, and ensure examples/phrasing from the removed paragraph are preserved
if they add value to the canonical section.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 1786ded4-86c0-4f4f-948f-11098b795cd5

📥 Commits

Reviewing files that changed from the base of the PR and between 3d63ea0 and 8eafbbf.

⛔ Files ignored due to path filters (2)
  • docs/package-lock.json is excluded by !**/package-lock.json
  • docs/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (11)
  • docs/astro.config.mjs
  • docs/package.json
  • docs/src/content/docs/extensions/csv-helper/csv-export.mdx
  • docs/src/content/docs/faq.mdx
  • docs/src/content/docs/getting-started/installation.mdx
  • docs/src/content/docs/getting-started/quick-start.mdx
  • docs/src/content/docs/guides/core-primitives.mdx
  • docs/src/content/docs/guides/defining-endpoints.mdx
  • docs/src/content/docs/guides/endpoint-groups.mdx
  • docs/src/content/docs/guides/filters.mdx
  • docs/src/content/docs/index.mdx

dotnet run
```

Send a POST request to `http://localhost:5000/users` to verify that the endpoint works.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Avoid hardcoding localhost:5000 in verification step.

At Line 95, the fixed port can mislead users because default local ports vary.

Suggested wording
-   Send a POST request to `http://localhost:5000/users` to verify that the endpoint works.
+   Send a POST request to `/users` on the URL shown by `dotnet run` (for example, `https://localhost:xxxx/users`) to verify that the endpoint works.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Send a POST request to `http://localhost:5000/users` to verify that the endpoint works.
Send a POST request to `/users` on the URL shown by `dotnet run` (for example, `https://localhost:xxxx/users`) to verify that the endpoint works.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/src/content/docs/getting-started/quick-start.mdx` at line 95, The docs
hardcode the endpoint URL "http://localhost:5000/users"; update the verification
step to avoid a fixed port by using a placeholder or referencing the app's
configured base URL (e.g., "http://localhost:{PORT}/users" or "the base URL
printed when you start the server") and adjust the sentence to instruct users to
substitute their actual port or use the server's shown URL instead of 5000.

Comment on lines +68 to +75
| Field | Description |
| --- | --- |
| `type` | URI that identifies the error category |
| `title` | Short summary of the error |
| `status` | HTTP status code |
| `detail` | Detailed explanation of the error |
| `errors` | Additional details such as validation errors |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

ProblemDetails field list is slightly inaccurate.

Line 74 (and Line 147 wording) presents errors as a common ProblemDetails field. That field is typically associated with ValidationProblemDetails, not base ProblemDetails.

Suggested doc correction
 | Field | Description |
 | --- | --- |
 | `type` | URI that identifies the error category |
 | `title` | Short summary of the error |
 | `status` | HTTP status code |
 | `detail` | Detailed explanation of the error |
-| `errors` | Additional details such as validation errors |
+| `instance` | URI reference to the specific occurrence of the problem |
-`Microsoft.AspNetCore.Mvc.ProblemDetails` provides the standard error response format defined by RFC 9457 (formerly RFC 7807). It includes fields such as `type`, `title`, `status`, `detail`, and `errors`, which bring consistency to API error responses. AxisEndpoints' DataAnnotations validation filter also returns validation errors in this format.
+`Microsoft.AspNetCore.Mvc.ProblemDetails` provides the standard error response format defined by RFC 9457 (formerly RFC 7807). It includes fields such as `type`, `title`, `status`, `detail`, and `instance`, which bring consistency to API error responses. AxisEndpoints' DataAnnotations validation filter typically returns `ValidationProblemDetails`, which adds an `errors` member for validation failures.

Also applies to: 147-147

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/src/content/docs/guides/core-primitives.mdx` around lines 68 - 75, The
table incorrectly lists the `errors` field as part of base ProblemDetails;
update the docs so the `ProblemDetails` field list (and the related wording
around `ProblemDetails` at the other occurrence) no longer mentions `errors`,
and instead add a brief note that `errors` is provided by
`ValidationProblemDetails` (or point readers to `ValidationProblemDetails` for
validation-specific error details); reference the `ProblemDetails` and
`ValidationProblemDetails` symbols and the `errors` field when making the
correction.

@sheepla sheepla merged commit 9771127 into master May 2, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant