2015-08-24 28 views
38

में फ़ाइल समस्या से नहीं पढ़ा जा सकता है मैंने अपने आवेदन में swagger UI को शामिल किया है।स्वैगर यूआई

जब मैं swagger UI को आज़माता और देखता हूं, तो मुझे एपीआई का दस्तावेज़ीकरण मिलता है लेकिन कुछ समय बाद यह बटन पर कुछ त्रुटि आइकन दिखाता है।

[{ "स्तर": "त्रुटि", "message": "फ़ाइल http://MYIP/swagger/docs/v1 से पढ़ा नहीं जा सकता"}]

मैं

त्रुटि संदेश नीचे की तरह है मुझे यकीन नहीं है कि इसका कारण क्या है। अगर मैं रीफ्रेश करता हूं तो यह काम करता है और कुछ सेकंड के बाद त्रुटि दिखाता है।

उत्तर

59

मुझे लगता है कि "http://MYIP/swagger/docs/v1" सार्वजनिक रूप से सुलभ नहीं है।

डिफ़ॉल्ट रूप से swagger ui एक ऑनलाइन सत्यापनकर्ता का उपयोग करता है: online.swagger.io। अगर यह आपके swagger url तक नहीं पहुंच सकता है तो आप उस त्रुटि संदेश को देखेंगे।

संभावित समाधान:

  1. अक्षम सत्यापन:

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

  2. अपनी साइट सार्वजनिक रूप से सुलभ

  3. होस्ट स्थानीय स्तर पर सत्यापनकर्ता करें:

आप से सत्यापनकर्ता प्राप्त कर सकते हैं: https://github.com/swagger-api/validator-badge#running-locally

तुम भी सत्यापनकर्ता के स्थान swaggerui बताने के लिए की आवश्यकता होगी

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

+2

आप कृपया बता सकते हैं किस फाइल में हम कॉन्फ़िगर कर सकते हैं वैधकर्ता को अक्षम करने के लिए सुनिश्चित करें? – shashi009

+3

यह इस बात पर निर्भर करता है कि आप किस ढांचे का उपयोग कर रहे हैं। Startup.cs में वेब एपीआई 2 के साथ उदाहरण के लिए: 'सार्वजनिक शून्य कॉन्फ़िगरेशन (IAppBuilder एप्लिकेशन) { ... HttpConfiguration config = नए HttpConfiguration(); स्वैगर कॉन्फिग।रजिस्टर (config); } ' फिर सत्यापनकर्ता को SwaggerConfig.cs –

+0

में कॉन्फ़िगर किया जा सकता है अगली व्यक्ति के लिए - जब मैंने डाउनलोड किया और वैधता-बैज स्थानीय रूप से चल रहा था, तो मुझे पता चला कि मेरा स्वैगर जेसन मान्य था। त्रुटि इसलिए थी क्योंकि मेरा swagger.json दूरस्थ रूप से उपलब्ध नहीं है (जो मैं [और शायद आप] चाहते हैं)। –

10

स्वीकार किए जाते हैं जवाब ... मैं सिर्फ uncommented में एक लाइन के पूरक करने के लिए SwaggerConfig.cs। मैं केवल सत्यापनकर्ता को अक्षम करके मुख्य swagger पेज पर लाल त्रुटि से छुटकारा पाना चाहता था।

// 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(); 
+1

साझा करने के लिए धन्यवाद! –

+0

मुझे swagger कॉन्फ़िगरेशन कहां मिल सकता है? –

+0

मैं स्वैगर के लिए स्वाशबकल न्यूगेट पैकेज का उपयोग करता हूं, और SwaggerConfig.cs को App_Start फ़ोल्डर के अंतर्गत रखा जाता है। –

0

आप L5-Swagger सिर्फ टिप्पणी हटाएं

'validatorUrl' => null, 

कॉन्फ़िग फ़ाइल /config/l5-swagger.php

1

स्थापना dist/swagger-ui.js में this.model.validatorUrl = null; मेरे लिए काम किया से साथ PHP Laravel framework का उपयोग कर ..

// 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; 
} 
संबंधित मुद्दे