visual studio nswag net meaning development asp swagger-ui swashbuckle

swagger-ui - studio - swashbuckle meaning



No se puede leer el problema del archivo en la interfaz de usuario de Swagger (6)

Establecer this.model.validatorUrl = null; en dist/swagger-ui.js funcionó para mí ...

// Default validator if(window.location.protocol === ''https:'') { //this.model.validatorUrl = ''https://online.swagger.io/validator''; this.model.validatorUrl = null; } else { //this.model.validatorUrl = ''http://online.swagger.io/validator''; this.model.validatorUrl = null; }

He incorporado swagger UI en mi aplicación.

Cuando trato de ver la interfaz de usuario de swagger, obtengo la documentación de la API muy bien, pero después de un tiempo muestra un icono de error en el botón.

El mensaje de error es el siguiente:

[{"nivel": "error", "mensaje": "No se puede leer el archivo http: // MYIP / swagger / docs / v1 "}]

No estoy seguro de qué lo está causando. Si actualizo funciona y muestra un error después de unos segundos.


Para complementar la respuesta aceptada ... acabo de comentar una línea en SwaggerConfig.cs. Solo quería deshacerme del error rojo en la página principal de swagger deshabilitando el validador.

// By default, swagger-ui will validate specs against swagger.io''s online validator and display the result // in a badge at the bottom of the page. Use these options to set a different validator URL or to disable the // feature entirely. //c.SetValidatorUrl("http://localhost/validator"); c.DisableValidator();


Si está utilizando archivos de swagger-ui github repo, puede deshabilitar la validación de esquema de su archivo index.html configurando validatorUrl como null en él:

window.onload = function() { // Build a system const ui = SwaggerUIBundle({ url: "/docs/open_api.json", dom_id: ''#swagger-ui'', validatorUrl : null, # <----- Add this line deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], layout: "StandaloneLayout" })



Supongo que " http: // MYIP / swagger / docs / v1 " no es de acceso público.

Por defecto, swagger ui usa un validador en línea: online.swagger.io. Si no puede acceder a su URL de swagger, verá ese mensaje de error.

Soluciones posibles:

  1. Deshabilitar validación:

    config.EnableSwagger().EnableSwaggerUi(c => c.DisableValidator());

  2. Haga que su sitio sea de acceso público

  3. Aloje el validador localmente:

Puede obtener el validador en: https://github.com/swagger-api/validator-badge#running-locally

También deberá indicarle a swaggerui la ubicación del validador

config.EnableSwagger().EnableSwaggerUi(c => c.SetValidatorUrl(<validator_url>));


Para cualquier persona que tenga un problema similar al usar Swashbuckle.OData:

Estaba teniendo problemas para integrar Swagger con nuestros puntos finales OData (usando ODataController para API y el paquete Swashbuckle.OData NuGet). Tuve que escribir nuestro propio filtro de documentos y agregarlo:

GlobalConfiguration.Configuration .EnableSwagger(c => { c.SingleApiVersion("v1", "OurSolution.API"); c.DocumentFilter<SwaggerDocumentFilter>(); //c.CustomProvider((defaultProvider) => new ODataSwaggerProvider(defaultProvider, c, GlobalConfiguration.Configuration)); c.IncludeXmlComments(GetXmlCommentsPath()); c.UseFullTypeNameInSchemaIds(); c.RootUrl(req => ConfigurationManager.AppSettings["AppUrl"]); }) .EnableSwaggerUi(c => { c.DisableValidator(); });

Aparentemente para evitar un error de validación, tuve que comentar la línea que está configurando ODataSwaggerProvider junto con el apagado del validador como se menciona en las publicaciones anteriores. Esto hace que la utilidad de Swashbuckle.OData sea cuestionable, pero no probé lo que sea que funcione con Swashbuckle de vainilla.

Nota: Utilicé el enfoque descrito en la página de GitHub para Swashbuckle.OData pero no funcionaba: no mostraba ningún punto final posible. Quizás alguien sabe mejor solución.