2016-07-01 10 views
5

मैंने नोड में swagger दस्तावेज़ बनाने के लिए समाधान खोजने का प्रयास करने का एक गुच्छा बिताया है। जेएस। मुख्य लाइब्रेरी swagger-node है, जिसमें आप एक swagger yaml फ़ाइल बनाते हैं और फिर अपने नियंत्रकों को इसमें जोड़ते हैं। यह स्वचालित रूप से आपके ऐप में swagger ui दस्तावेज़ प्रदान करता है और आपके yaml में निर्दिष्ट मॉडल के विरुद्ध अनुरोध & अनुरोध पर सत्यापन करता है।node.js पर swagger में शून्य फ़ील्ड

यह साफ है, लेकिन मैं एक आवश्यकता है कि कुछ क्षेत्रों मैं स्पष्ट रूप से वापसी या एक मूल्य के रूप में null स्वीकार करने के लिए, उदाहरण के लिए सक्षम होने के लिए करना चाहते हैं:

{ 
    id: 123, 
    description: "string", 
    date_sent: null 
} 

मैं date_sent नष्ट करने के लिए नहीं करना चाहते हैं कुंजी, मैं स्पष्ट रूप से इसे शून्य के रूप में बताना चाहता हूं।

स्वैगर स्पेक anyOf का समर्थन नहीं करता है, इस प्रकार JSON स्कीमा सामान्य रूप से ऐसा करता है।

मुझे आश्चर्य है कि कोई कामकाज है या नहीं? शायद कुछ पुस्तकालय नोड के लिए उपलब्ध है जिसमें x-nullable विक्रेता विशिष्ट ध्वज है जिसे आप जोड़ सकते हैं, या यह निर्दिष्ट करने का कोई तरीका है कि मेरे आवश्यक फ़ील्ड सभी को शून्य नहीं होना चाहिए।

क्या मुझे अपने आप को कुछ लिखना होगा जो मेरी swagger फ़ाइल लेता है और फिर इसे वैधकर्ता मिडलवेयर चलाने से पहले संशोधित करता है, या क्या कोई कामकाज कोई सुझाव दे सकता है?

उत्तर

6

स्वैगरयूआई निरर्थक प्रकारों का समर्थन नहीं करता है (कृपया, here देखें)। लेकिन मैं के रूप में नल गुण का प्रयोग किया:

type: ['string','null'] 

कि इस संपत्ति यूआई से गायब हो जाता करने के बाद, लेकिन सत्यापन अभी भी काम किया।

+2

आह! मैंने कोशिश की, लेकिन यम में मैंने 'स्ट्रिंग' और 'नल' किया लेकिन आपको काम करने के लिए' null'' 'के आस-पास उद्धरण प्राप्त करना होगा। धन्यवाद! इसके अलावा, यदि आप 'डिफ़ॉल्ट' जोड़ते हैं तो यह उदाहरण मानों में फिर से दिखाई देगा, मुझे लगता है कि यह नहीं जानता कि कौन सा उदाहरण उदाहरण के रूप में उपयोग करना है – RodH257

+0

वाह! बहुत बहुत धन्यवाद! मैंने डिफ़ॉल्ट मान के बारे में नहीं सोचा था। मैं इसे अपने प्रोजेक्ट – Sergiy

+2

के लिए आज़माउंगा, यह एक वैध स्वैगर प्रकार परिभाषा नहीं है, वैसे भी। – Ron

4

nullable फ़ील्ड ओपनएपीआई (एफका स्वैगर) विशिष्टता v3.0.0 में समर्थित है, लेकिन v2.0 में नहीं है। निम्न प्रकारों को निम्नानुसार परिभाषित किया गया है:

# Can be string or null 
type: string 
nullable: true 
0

प्रकार की संपत्ति में शून्य जोड़ने के बजाय, आप इसके बजाय डिफ़ॉल्ट संपत्ति का उपयोग कर सकते हैं।

Swagger.json संपत्ति परिभाषा उदाहरण:

"due_date": { 
    "type": "string", 
    "description": "Due date", 
    "default": "null" 
}, 

यह एक मान्य स्वैगर प्रकार परिभाषा है, और अभी भी स्वैगर यूआई में अपेक्षा के अनुरूप दिखाई देता है।

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