2015-10-30 43 views
0

我想發送下面的json請求。有條件地將元素包含在swagger中

{ 
    "outboundMessageRequest": { 
    "senderAddress": "{senderAddress}", 
    "charging": { 
     "description":"{description}", 
     "amount" : "{amount}" 
    }, 
    "outboundMessage": { 
     "subject": "{subject}", 
     "priority": "{priority}" 
    } 
    } 
} 

我的問題是如果用戶沒有提供描述字段的值,我該如何從請求中移除收費元素?

例如,如果用戶沒有爲描述元素提供值,服務器應該接收下面的json。

{ 
    "outboundMessageRequest": { 
    "senderAddress": "{senderAddress}", 
    "outboundMessage": { 
     "subject": "{subject}", 
     "priority": "{priority}" 
    } 
    } 
} 

回答

0

在招搖的時候,你會把它描述成兩個不同的模式 - 一個是入站模式,另一個是出站模式。你甚至可以使用allOf來組合它們之間關係的兩個模式。例如:

definitions: 
     MessageRequest: 
     properties: 
      senderAddress: 
      type: string 
      outboundMessage: 
      type: object 
      properties: 
       subject: 
       type: string 
       priority: 
       type: string 
     InboundMessage: 
     allOf: 
      - $ref: '#/definitions/MessageRequest' 
      - properties: 
       charging: 
       type: object 
       properties: 
        description: 
        type: string 
        amount: 
        type: number 
        format: double 

這表示入站消息與出站消息相同,但具有其他複雜屬性。