AgentSkillsCN

swagger

为affolterNET.Web.Api配置Swagger/OpenAPI文档。在设置API文档、自定义Swagger UI或配置OpenAPI元数据时使用此方法。

SKILL.md
--- frontmatter
name: swagger
description: Configure Swagger/OpenAPI documentation for affolterNET.Web.Api. Use when setting up API documentation, customizing Swagger UI, or configuring OpenAPI metadata.

Swagger/OpenAPI Configuration

Configure Swagger/OpenAPI documentation for your API.

For complete reference, see Library Guide.

Quick Start

appsettings.json

json
{
  "affolterNET": {
    "Web": {
      "Swagger": {
        "Enabled": true,
        "Title": "My API",
        "Version": "v1",
        "Description": "API documentation for My Application"
      }
    }
  }
}

Configuration Options

SwaggerOptions

PropertyTypeDefaultDescription
Enabledbooltrue (dev)Enable Swagger UI and endpoint
Titlestring"API"API title in Swagger UI
Versionstring"v1"API version
DescriptionstringnullAPI description
RoutePrefixstring"swagger"URL prefix for Swagger UI

Common Patterns

Development Only

json
{
  "affolterNET": {
    "Web": {
      "Swagger": {
        "Enabled": true
      }
    }
  }
}

In production, set Enabled to false or remove the configuration.

Custom Route

json
{
  "affolterNET": {
    "Web": {
      "Swagger": {
        "Enabled": true,
        "RoutePrefix": "api-docs"
      }
    }
  }
}

Access at: https://your-api.com/api-docs

With Authentication

When authentication is enabled, Swagger UI will include the authorization header configuration for testing authenticated endpoints.

Controller Documentation

Use XML comments for API documentation:

csharp
/// <summary>
/// Gets all users
/// </summary>
/// <returns>List of users</returns>
/// <response code="200">Returns the list of users</response>
/// <response code="401">Unauthorized</response>
[HttpGet]
[ProducesResponseType(typeof(List<User>), 200)]
[ProducesResponseType(401)]
public IActionResult GetUsers() { ... }

Enable XML documentation in your .csproj:

xml
<PropertyGroup>
  <GenerateDocumentationFile>true</GenerateDocumentationFile>
  <NoWarn>$(NoWarn);1591</NoWarn>
</PropertyGroup>

Troubleshooting

Swagger UI not loading

  • Verify Enabled is true in configuration
  • Check the RoutePrefix matches your expected URL
  • Ensure no middleware is blocking the Swagger routes

Missing endpoints

  • Confirm controllers are properly registered
  • Check that routes are correctly attributed
  • Verify authorization doesn't block discovery