2017-08-24 24 views
0

我定義了一個將MyObject作爲參數的路徑。 MyObject具有貓和狗的屬性。這些都有默認值。 在swagger編輯器中,示例不顯示默認值,但嘗試使用正確的默認值創建MyObject。swagger-ui中可以作爲參數傳遞的swagger對象是否有默認值?

在swagger-ui中,我可以在Models下看到默認值,但在API中看不到。有沒有辦法設置這些默認設置? 招搖: '2.0' 信息: 標題:使用默認屬性作爲參數 描述通對象:等 版本: 「草稿0.1.1」 宿主:example.com 基本路徑:/ 生產: - 應用/ JSON

paths: 
    /myobject: 

    post: 
     summary: | 
     post an object. 
     parameters: 
     - name: myObject 
      in: body 
      required: true 
      schema: 
      type: array 
      items: 
       $ref: '#/definitions/MyObject' 
     responses: 
     200: 
      description: OK 

definitions: 

    MyObject: # move to/models/model.yml 
     type: object 
     description: Contains default properties 
     required: 
     - cats 
     - dogs 
     properties: 
     cats: 
      type: number 
      default: 9 
     dogs: 
      type: string 
      default: "fido" 

swagger-editor api

swagger-ui API (try it out)

swagger-ui Models shows the default values

回答

2

您對default的使用是錯誤的。您可能需要example

default僅用於與可選字段和是在服務器端處理。也就是說,如果客戶端不在有效負載中提供值,則服務器將使用default值。

考慮這個User模式:

definitions: 
    User: 
    type: object 
    required: 
     - username 
    properties: 
     username: 
     type: string 
     role: 
     type: string 
     enum: 
      - user 
      - poweruser 
      - admin 
     default: user 

role屬性是可選的,默認爲user。所以,如果客戶端發送有效載荷不role

{ 
    "username": "bob" 
} 

服務器將承擔role = user


就你而言,它看起來像你想提供的字段的示例值。這就是example關鍵字的用途:

definitions: 
    MyObject: 
    type: object 
    description: Contains default properties 
    required: 
     - cats 
     - dogs 
    properties: 
     cats: 
     type: number 
     example: 9  # <--- 
     dogs: 
     type: string 
     example: fido # <--- 
相關問題