2017-03-15 14 views
5

मैंने वेब एपीआई के साथ स्वाशबकल का उपयोग करना शुरू कर दिया है। मेरे स्वैगर यूआई में मेरे किसी भी प्रकार का सही ढंग से प्रस्तुत नहीं किया जा रहा है।स्कीमा परिभाषाओं में टाइप नाम नहीं मिला

<span class="strong">Typename is not defined!</span> 

तो मैं जांच की, और मेरे विधियों में से कई के लिए मेरे स्वैगर परिभाषाओं फ़ाइल में इस पाया:

{$ref: "#/definitions/Typename", vendorExtensions: {}} 

typeName परिभाषाओं में मौजूद हर विधि पर, मैं कुछ इस तरह (unrendered) देखें लिस्टिंग ... लेकिन इसके निचले स्तर पर। वे सभी कम-से-कम हैं, लेकिन $ref सभी ऊपरी मामले हैं।

मैं इसे कैसे ठीक करूं?

बाउंटी संपादित करें: अधिक जानकारी अनुरोध पर उपलब्ध है, मुझे यकीन नहीं है कि और क्या प्रासंगिक हो सकता है।

[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(SwaggerConfig), "Register")] 

public class SwaggerConfig 
{ 
    public static void Register() 
    { 
     var thisAssembly = typeof(SwaggerConfig).Assembly; 

     GlobalConfiguration.Configuration 
      .EnableSwagger(c => 
       { 
        c.SingleApiVersion("v1", "MyNamespace.Api"); 
        c.IncludeXmlComments(Path.Combine(
         AppDomain.CurrentDomain.GetDataDirectoryPath(), 
         "MyNamespace.Api.XML")); 

       }) 
      .EnableSwaggerUi(); 
    } 
} 
+0

क्या आप अपना स्वैगर कॉन्फ़िगरेशन पेस्ट कर सकते हैं? –

+0

@ थिगोगो कस्टोडियो – Amy

उत्तर

1

मैं इसे बाहर लगभग दुर्घटना से लगा। कारणों से मुझे अभी तक समझ में नहीं आता है, मुझे अपने टाइप नामों को लोअरकेस अक्षर से शुरू करने की आवश्यकता है जब कोई और नहीं लगता है।

c.SchemaId(type => 
{ 
    var name = type.Name; 
    name = $"{ name.Substring(0,1).ToLower() }{ name.Substring(1) }"; 
}); 
0

अपनी प्रोजेक्ट सेटिंग जांचें। आपके पथ की तरह लगता है गलत हो सकता है। नीचे मैं सेटिंग स्थापित कर रहे हैं।

...swaggerDocsConfig.IncludeXmlComments(GetXmlCommentsPath()); 

और भी

/// <summary> 
/// This is where the generated XML meta documentation are stored. 
/// Editable in project settings 
/// </summary> 
private static string GetXmlCommentsPath() 
{ 
    return string.Format(@"{0}\bin\MrGreen.Game.Service.XML", AppDomain.CurrentDomain.BaseDirectory); 
} 

enter image description here

+0

अपडेट किया गया मुझे लगता है कि एक्सएमएल टिप्पणियां ठीक काम कर रही हैं। स्वैगर यूआई में उनके विवरणों के साथ मेरी विधियों को एनोटेट किया गया है। – Amy

+0

@ एमी: मैं दूसरा @ जॉकी। क्या आपने सुझाव की कोशिश की? आपके प्रश्न में आप _c.IncludeXmlComments ("MyNamespace.Api.XML") _ => दिखाते हैं, इस प्रकार आप पथ निर्दिष्ट नहीं करते हैं ... हम निम्नलिखित निर्माण (@Jocke के समान) का उपयोग करते हैं: _String.Format (@ "{0 } \ bin \ {1} .XML ", AppDomain.CurrentDomain.BaseDirectory, typeof (SwaggerConfig)। नेमस्पेस); _ – AardVark71

+0

XML टिप्पणियां सही तरीके से काम कर रही हैं। मैं फ़ाइल नाम सही तरीके से उत्पन्न कर रहा हूं, लेकिन प्रश्न को सरल बनाने के लिए मेरे कोड के उस भाग को छोड़ दिया। मैं अपना वास्तविक कोड संपादित करूंगा, लेकिन मैं आपको आश्वासन देता हूं, यह हिस्सा सही तरीके से काम कर रहा है। – Amy

संबंधित मुद्दे