Saltar al contenido

Cómo establecer la propiedad de ruta base en swagger para .Net Core Web API

Esta inquietud se puede tratar de diversas maneras, pero en este caso te compartimos la solución más completa en nuestra opinión.

Solución:

al final usé esto para arreglarlo:

puede configurar PreSerializeFilters para agregar BasePath y editar las rutas. Pensé que habría una forma más elegante, pero esto funciona.

var basepath = "/api/AppStatus";
c.PreSerializeFilters.Add((swaggerDoc, httpReq) => swaggerDoc.BasePath = basepath);


c.PreSerializeFilters.Add((swaggerDoc, httpReq) => 
    IDictionary paths = new Dictionary();
    foreach (var path in swaggerDoc.Paths)
    
        paths.Add(path.Key.Replace(basepath, "/"), path.Value);
    
    swaggerDoc.Paths = paths;
);

BasePath se usó en Swagger v2.0 Ha sido reemplazado por los servidores array en OpenApi v3.0

En v5, debe hacer esto para usar OpenApi v3.0:

var basePath = "/v1";
app.UseSwagger(c =>
    
        c.RouteTemplate = "swagger/documentName/swagger.json";
        c.PreSerializeFilters.Add((swaggerDoc, httpReq) =>
        
            swaggerDoc.Servers = new List  new OpenApiServer  Url = $"httpReq.Scheme://httpReq.Host.ValuebasePath"  ;
        );
    );

Si posees algún reparo o disposición de progresar nuestro tutorial te inspiramos ejecutar una acotación y con deseo lo analizaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *