Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

375
Visualizações
Personalice los nombres de los modelos generados: interfaz de usuario de Swagger

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. ingrese la descripción de la imagen aquí

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.

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

(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

about 4 years ago · Santiago Trujillo Relatório

0

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

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda