В нашем проекте ASP.NET Core 2.2 есть перечисления, прокомментированные так:
/// <summary>Theme for the UI</summary>
public enum Theme
{
/// <summary>Dark backgrounds, lighter texts</summary>
Dark,
/// <summary>Light backgrounds with dark texts</summary>
Light,
/// <summary>Colors picked specifically to improve contrasts</summary>
HighContrast,
}
И мы используем их, например, так:
/// <summary>UI settings DTO</summary>
public class Settings
{
/// <summary>UI theme</summary>
public Theme Theme { get; set; }
}
/// <summary>Change your settings</summary>
/// <param name="settings">Updated settings</param>
/// <returns>No content</returns>
[HttpPost("/change-settings")]
public async Task<ActionResult> ChangeSettings(Settings settings)
{
this.themeService.changeTo(settings.Theme);
// etc.
return new NoContent();
}
Комментарии XML генерируются при сборке, включаются в качестве ресурса и составляют часть спецификации OpenAPI следующим образом:
services.AddSwaggerGen(c =>
{
c.IncludeXmlComments(GetXmlCommentsPath(), includeControllerXmlComments: true);
// etc.
});
Наконец, мы делаем app.UseReDoc(c => ...)
для визуализации файла JSON.
Проблема: xml-комментарии ни к самому перечислению Theme
, ни к его опциям не отображаются нигде в нашей документации. Его также нет в документе OpenAPI JSON (так что логически он не отображается в ReDoc).
Как вы можете получить такую документацию в вашем OpenAPI JSON, а затем на страницах ReDoc?