Browse Source

Use group name as tags.

pull/336/head
Sebastian Stehle 7 years ago
parent
commit
ee16d7daef
  1. 1
      src/Squidex/Areas/Api/Config/Swagger/SwaggerServices.cs
  2. 32
      src/Squidex/Areas/Api/Config/Swagger/TagByGroupNameProcessor.cs

1
src/Squidex/Areas/Api/Config/Swagger/SwaggerServices.cs

@ -106,6 +106,7 @@ namespace Squidex.Areas.Api.Config.Swagger
settings.GeneratorSettings.DocumentProcessors.Add(new RuleActionProcessor());
settings.GeneratorSettings.DocumentProcessors.Add(new XmlTagProcessor());
settings.GeneratorSettings.OperationProcessors.Add(new TagByGroupNameProcessor());
settings.GeneratorSettings.OperationProcessors.Add(new XmlResponseTypesProcessor());
return settings;

32
src/Squidex/Areas/Api/Config/Swagger/TagByGroupNameProcessor.cs

@ -0,0 +1,32 @@
// ==========================================================================
// Squidex Headless CMS
// ==========================================================================
// Copyright (c) Squidex UG (haftungsbeschraenkt)
// All rights reserved. Licensed under the MIT license.
// ==========================================================================
using System.Collections.Generic;
using System.Reflection;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using NSwag.SwaggerGeneration.Processors;
using NSwag.SwaggerGeneration.Processors.Contexts;
using Squidex.Infrastructure.Tasks;
namespace Squidex.Areas.Api.Config.Swagger
{
public sealed class TagByGroupNameProcessor : IOperationProcessor
{
public Task<bool> ProcessAsync(OperationProcessorContext context)
{
var groupName = context.ControllerType.GetCustomAttribute<ApiExplorerSettingsAttribute>()?.GroupName;
if (!string.IsNullOrWhiteSpace(groupName))
{
context.OperationDescription.Operation.Tags = new List<string> { groupName };
}
return TaskHelper.True;
}
}
}
Loading…
Cancel
Save