Estoy tratando de ajustar el "displayName" del modelo que se utiliza en una definición de Swagger generada automáticamente.
Esto solo afectará a los nombres de Swagger, lo que significa que el espacio de nombres en el código no se modificará, mientras que al mirar el modelo desde la interfaz de usuario de Swagger, verá un nombre personalizado.
Actualmente, el nombre del modelo que se devuelve desde el código es un espacio de nombres y se parece a esto: bcdef , me gustaría agregar un atributo al código y "enmascarar" el nombre para los documentos de Swagger, de modo que cuando la documentación/definición de Swagger obtenga generado, se mostrará como CustomSwaggerName en su lugar.
Tengo algunas API (C#) que usan herramientas que incluyen Swashbuckle (preferido) y SwaggerGen , pero ahora mismo, me gustaría que funcione en cualquiera de las dos, si es posible.
He intentado usar atributos que parecen correctos:
[ResponseType(typeof(Company)),DisplayName("NewCompany")] [SwaggerResponse(200,"NewCompany",typeof(object))]Sin suerte También busqué en el repositorio git de SwashBuckle , con la esperanza de encontrar algo.
Una imagen que debería ayudar a explicar mejor lo que estoy tratando de lograr. 
Sé que esto puede parecer un caso de uso extraño, pero es para una herramienta que se está escribiendo para nuestra automatización de AWS API Gateway, que utilizará la definición de Swagger para algunas comparaciones.
(Cuentas para .net core :)
Combinaría el atributo de visualización de la clase con un esquema de swagger personalizado:
[DisplayName("NewCompany")] public class Company { }y luego en Inicio:
services.AddSwaggerGen(c => { c.CustomSchemaIds(x => x.GetCustomAttributes<DisplayNameAttribute>().SingleOrDefault().DisplayName); });ver también esta respuesta
La respuesta es: use un IDocumentFilter:
private class ApplyDocumentFilter_ChangeCompany : IDocumentFilter { public void Apply(SwaggerDocument swaggerDoc, SchemaRegistry schemaRegistry, IApiExplorer apiExplorer) { if (swaggerDoc.definitions != null) { swaggerDoc.definitions.Add("Company123", swaggerDoc.definitions["Company"]); } if (swaggerDoc.paths != null) { swaggerDoc.paths["/api/Company"].get.responses["200"].schema.@ref = "#/definitions/Company123"; } } }Aquí está el código: https://github.com/heldersepu/SwashbuckleTest/commit/671ce648a7cc52290b4ad29ca540b476e65240e6
Y aquí está el resultado final: http://swashbuckletest.azurewebsites.net/swagger/ui/index#!/Company/Company_Get