我正在使用可以返回XML以及JSON的API,並且正在研究是否有任何方式在Swagger中表示XML模式,並且看起來沒有任何方式。關於Swagger 2.0中的XML的問題
我有2跟進的問題:
如果我的XML在「示例」對象返回API帖子的XML樣本之一,這仍然很好,對不對?
模式對象有一個XML對象。我閱讀了描述,但我不確定可以使用哪些情況?任何人都可以舉個例子嗎?如果可以的話,它會非常有幫助。
我只是想確保我不會遺漏任何可以用來使我的API元數據更具描述性的東西。
謝謝你們。
我正在使用可以返回XML以及JSON的API,並且正在研究是否有任何方式在Swagger中表示XML模式,並且看起來沒有任何方式。關於Swagger 2.0中的XML的問題
我有2跟進的問題:
如果我的XML在「示例」對象返回API帖子的XML樣本之一,這仍然很好,對不對?
模式對象有一個XML對象。我閱讀了描述,但我不確定可以使用哪些情況?任何人都可以舉個例子嗎?如果可以的話,它會非常有幫助。
我只是想確保我不會遺漏任何可以用來使我的API元數據更具描述性的東西。
謝謝你們。
當涉及到返回XML和JSON的API時,Swagger假定它們共享一個基本可以互換的公共結構。
也就是說,如果你有這樣的JSON:
{ "key1": "value1", "key2": "value2" }
的XML看起來像:
<object>
<key1>value1</key1>
<key2>value2</key2>
</object>
正如你可以看到,仍然有細微的差別。 XML需要包含在JSON中不存在的元素。這是Swagger規格中的XML對象所在的位置,因爲它允許您添加此附加信息。它還允許您將字段定義爲屬性,聲明所使用的名稱空間並允許更好地控制值的數組,在XML中有幾個變體而不是JSON。
儘管我們沒有XML對象的大量示例,但您可以在此找到一個示例 - https://github.com/swagger-api/swagger-spec/blob/master/fixtures/v2.0/json/models/modelWithXmlAttributes.json。我需要在規範中添加更多的細節,希望在未來幾周。
至於示例字段 - 其值是一個自由格式JSON對象。你可以做的是這樣的:
{
"xml" : "<object>.....</object>"
}
請參閱下面的招搖結果。
{
"in": "body",
"name": "xmlbody",
"description": "example of swagger with xml",
"required": true,
"schema": {
"$ref": "#/definitions/myOuter"
}
}
definitions:{
"myOuter":{
"type":"object",
"xml":{
"name":"House"
},
"properties":{
"class":{
"type":"string",
"enum":[
"singleFamily"
],
"xml":{
"attribute":true,
"prefix":"home"
}
},
"masterRoom":{
"type":"object",
"properties":{
"bed":{
"type":"string",
"xml":{
"prefix":"master"
}
},
"size":{
"type":"string",
"enum":[
"XL"
],
"xml":{
"attribute":true
}
},
"color":{
"type":"string",
"enum":[
"brown"
],
"xml":{
"attribute":true,
"name":"COLOR",
"prefix":"paint"
}
},
"window":{
"type":"string",
"enum":[
"slide"
],
"xml":{
"attribute":true,
"name":"open",
"prefix":"view",
"namespace":"http://doesntShowUpDueToENUM.com"
}
}
}
}
}
}
}
<?xml version="1.0"?>
<House home:class="singleFamily">
<masterRoom size="XL" paint:COLOR="brown" view:open="slide">
<master:bed>string</master:bed>
</masterRoom>
</House>
是否有一個等效YAML爲例來說明XML響應對象的定義? Thx! – barbazoo 2015-02-03 16:23:13
我不確定是否有,但YAML和JSON完全可以互換。如果你有一個JSON樣本,你可以很容易地使用像http://jsontoyaml.com/ – Ron 2015-02-03 16:26:48
哎呀抱歉..轉換它我錯了,並downvote答案:(只注意到它.. 「您最後投票了這個答覆5幾小時前,你的投票現在被鎖定,除非這個答案被編輯。「大聲笑 – 2015-02-15 06:29:04