2016-04-27 33 views
6
type": "array", 
"items": { 
    "type": "string", 
    "enum": ["MALE","FEMALE","WORKER"] 
} 

यास्वैगर 2,0

type": "array", 
"items": { 
    "type": "string", 
}, 
"enum": ["MALE","FEMALE","WORKER"] 

में सरणी के लिए enum परिभाषित?

इस बारे में कल्पना में कुछ भी नहीं। लक्ष्य enum मूल्य दिखाने के लिए swagger-ui प्राप्त करने के लिए निश्चित है।

+0

दोनों http://bigstickcarpet.com/swagger-parser/www/index.html में मान्य –

उत्तर

4

पहला मामला सही है और इन दिनों swagger-ui enum मानों का एक बहु-चयन चयन उत्पन्न करता है।

enter image description here

3

यह है कि तुम क्या Enum करना चाहते हैं पर निर्भर करेगा:

प्रत्येक enum मूल्य पहले मामले में वर्णित ऑब्जेक्ट प्रकार

  • एक स्ट्रिंग
  • दूसरा एक में स्ट्रिंग
  • की किसी सरणी का होना चाहिए

प्रथम वाक्य रचना का मतलब ये इस सरणी में स्ट्रिंग के संभावित मान हैं

AnArray: 
    type: array 
    items: 
    type: string 
    enum: 
     - MALE 
     - FEMALE 
     - WORKER 

यह सरणी एकाधिक स्ट्रिंग शामिल कर सकते हैं, लेकिन प्रत्येक स्ट्रिंग पुरुष, महिला या कार्यकर्ता मान होना चाहिए।

Rendering in Swagger UI: You have to put mouse pointer on the value to see enum

दूसरा एक इसका मतलब ये इस सरणी

AnotherArray: 
    type: array 
    items: 
    type: string 
    enum: 
    - 
     - FEMALE 
     - WORKER 
    - 
     - MALE 
     - WORKER 

के संभावित मान हैं प्रत्येक enum मूल्य इसलिए एक सरणी है। इस उदाहरण में, इस सरणी को केवल संभावित मूल्य ["FEMALE", "वर्कर"] और ["MALE", "वर्कर"] हो सकता है।

दुर्भाग्यवश यदि यह वाक्यविन्यास मान्य है, तो स्वैगर यूआई में कोई भी मूल्य मान नहीं दिखाया जाता है।

+0

पहले मैं चाहता है, लेकिन दुर्भाग्य से केवल दूसरे enum मान दिखाता है। (यह एक अनुरोध पैरामीटर परिभाषा है)। और दूसरे मामले में मेरे पास एक फ्लैट संरचना है, सरणी की सरणी नहीं है। –

+0

दूसरा उदाहरण सरणी की सरणी नहीं है बल्कि पहले उदाहरण की तरह स्ट्रिंग की सरणी है। अंतर यह है कि आप किस स्तर पर enum (सरणी बनाम सरणी की वस्तु) डालते हैं। मुझे यह समझने की ज़रूरत नहीं है कि आप क्या चाहते हैं, इस सरणी का कुछ JSON उदाहरण दे सकता है? –

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