2015-06-24 14 views
24

तो मैं समझता हूं कि अगर हम शरीर के मानकों को चाहते हैं तो हमारे पास एक स्कीमा होना चाहिए, जो मैं करता हूं। मुद्दा कोई फर्क नहीं पड़ता कि मैं अपनी स्कीमा को परिभाषित करने का प्रयास कैसे करता हूं, यह मुझे कई बॉडी पैरामीटर रखने की अनुमति नहीं देता है। यहां मैंने कोशिश की गई विधियों में से एक का उदाहरण दिया है। कोई भी मदद बहुत अच्छी रहेगी!स्वैगर संपादक शरीर में एकाधिक पैरामीटर

swagger: '2.0' 

# This is your document metadata 
info: 
    version: "0.0.1" 
    title: Todo App 
schema: { 
     } 
host: localhost:3000 
schemes: 
    - http 
    - https 
consumes: 
    - application/json 
produces: 
    - application/x-www-form-urlencoded 
basePath:/

paths: 
    # This is a path endpoint. Change it. 
    /tasks: 
    post: 
     description: | 
     Add 'Task' object. 

     parameters: 
     # An example parameter that is in query and is required 
     - 
      name: name 
      in: query 
      description: unique object task name 
      required: true 
      schema: 
      type: string 
     - name: description 
      in: query 
      description: task description 
      required: true 
      schema: 
      type: string 

     responses: 
     # Response code 
     200: 
      description: Successful response 
      # A schema describing your response object. 
      # Use JSON Schema format 
      schema: 
       title: Return String 
       type: string 
       example: "Task added succesfully" 
     500: 
      description: Error 
      schema: 
      type: string 
      example: "Could not add Task" 

उत्तर

31

मैं अपने प्रश्न को समझने के लिए यकीन नहीं है ...

  • आप एक ऑपरेशन के लिए एक से अधिक शरीर पैरामीटर को परिभाषित करने की कोशिश कर रहा है, तो आप नहीं कर सकते। के रूप में swagger specification में विस्तार से बताया:

Body [...] there can only be one body parameter

  • आप एक से अधिक मापदंडों के साथ एक शरीर भेजने की कोशिश कर रहे हैं, तो आप परिभाषाएँ खंड में मॉडल वस्तु और आप शरीर पैरामीटर में यह उल्लेख है, नीचे देखें जोड़ने (editor.swagger.io साथ काम करता है:

आप उदाहरण नोड्स भी गलत हैं, अधिक जानकारी के लिए here देखते हैं।

swagger: '2.0' 
info: 
    version: "0.0.1" 
    title: Todo App 
host: localhost:3000 
schemes: 
    - http 
    - https 
consumes: 
    - application/json 
produces: 
    - application/x-www-form-urlencoded 
basePath:/
paths: 
    # This is a path endpoint. Change it. 
    /tasks: 
    post: 
     description: | 
     Add 'Task' object. 
     parameters: 
     - name: task 
      in: body 
      description: task object 
      required: true 
      schema: 
      $ref: '#/definitions/Task' 
     responses: 
     200: 
      description: Successful response 
      schema: 
       title: Return String 
       type: string 
       example: "Task added succesfully" 
     500: 
      description: Error 
      schema: 
      type: string 
      example: "Could not add Task" 
definitions: 
    Task: 
    description: Task object 
    properties: 
     name: 
     type: string 
     description: task object name 
     description: 
     type: string 
     description: task description 
    required: 
     - name 
     - description 
+0

आपके उत्तर के लिए धन्यवाद। लेकिन क्या आप जानते हैं कि इस त्रुटि का क्या अर्थ है? {"message": "कार्य को अद्यतन नहीं किया जा सका। प्रमाणीकरण त्रुटि: पथ नाम के लिए सत्यापनकर्ता \" आवश्यक \ "विफल रहा, पथक वर्णन के लिए सत्यापनकर्ता \" आवश्यक \ "विफल रहा"} –

+0

आपको यह त्रुटि कैसे प्राप्त होती है? क्या आप अपने संदर्भ का वर्णन कर सकते हैं? –

+0

ऐसा तब होता है जब मैं अपने फ़ंक्शन का परीक्षण करने का प्रयास करता हूं, उदाहरण के साथ आपने उपयोग किए गए उदाहरण के साथ, सबकुछ सही काम करना प्रतीत होता था और फिर जब मैंने परीक्षण करने का प्रयास किया तो मुझे यह त्रुटि मिली। –

1

आप schema के हिस्से के रूप में properties का उपयोग कर अनुरोध निकाय के गुणों को भी परिभाषित कर सकते हैं। ऑब्जेक्ट पेलोड के तहत इसका एक अच्छा उदाहरण है: https://swagger.io/docs/specification/2-0/describing-request-body/

paths: 
    /users: 
    post: 
     summary: Creates a new user. 
     consumes: 
     - application/json 
     parameters: 
     - in: body 
      name: user 
      description: The user to create. 
      schema: 
      type: object 
      required: 
       - userName 
      properties: 
       userName: 
       type: string 
       firstName: 
       type: string 
       lastName: 
       type: string 
     responses: 
     201: 
      description: Created 

निश्चित रूप से नुकसान यह है कि आप एक वस्तु परिभाषा के पुन: उपयोग नहीं मिलता है, लेकिन कभी कभी एक वस्तु परिभाषा उचित नहीं है।

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