当前位置: 首页 > 知识库问答 >
问题:

如何为swagger中的XML参数提供示例

叶福
2023-03-14

我正在使用Swashbuck le 5.6.0Swashbuck。示例。3.5.1来记录WebApi2项目。我有一个使用XML正文并返回文本响应的操作。我希望留档包含XML输入的示例-例如

我的炫耀输出如下,除了为了这个问题的目的,我在<code>comsumes</code>属性中添加了内容类型<code>application/json</code>。实际上,我只想允许application/xmltext/xml

当我用Swagger查看这个时,我看到:

>

  • 当选择了参数内容类型application/xml时,我会得到一个生成的xml示例和我的模型名称,即

    选择参数内容类型应用程序/json 时,我得到所需的示例输入

    如何在选择参数内容类型应用程序/xml 时获取示例输入?

    {
      "swagger": "2.0",
      "info": {
        "version": "v1",
        "title": "Sample"
      },
      "host": "localhost:63434",
      "schemes": [
        "http"
      ],
      "paths": {
        "/sampleXml/": {
          "post": {
            "tags": [
              "xmlSample"
            ],
            "summary": "XML sample.",
            "description": "Post XML sample",
            "operationId": "Xml_Post",
            "consumes": [
              "application/xml",
              "application/json",
              "text/xml",
            ],
            "produces": [
              "text/plain"
            ],
            "parameters": [
              {
                "name": "xmlContent",
                "in": "body",
                "description": "The content of the XML document.",
                "required": true,
                "schema": {
                  "$ref": "#/definitions/XmlModel"
                }
              }
            ],
            "responses": {
              "200": {
                "description": "OK",
                "schema": {
                  "type": "string"
                }
              },
            }
          }
        }
      },
      "definitions": {
        "XmlModel": {
          "type": "object",
          "properties": {},
          "example": "<SampleXml><!-- example XML --></SampleXml>"
        }
      }
    }
    

  • 共有1个答案

    卢元龙
    2023-03-14

    从<code>更改根XML标记

      "definitions": {
        "XmlModel": {
          "type": "object",
          "xml": {
             "name": "SampleXml"
          }
        }
      }
    

    这将在Swagger UI中生成以下示例XML:

    <?xml version="1.0" encoding="UTF-8"?>
    <SampleXml>
    </SampleXml>
    

    如果您添加属性定义:

      "definitions": {
        "XmlModel": {
          "type": "object",
          "xml": {
             "name": "SampleXml"
          },
          "properties": {
            "id": {
              "type": "integer",
              "example": 7,
              "xml": {
                "attribute": true
              }
            },
            "foo": {
              "type": "string",
              "example": "bar"
            }
          }
        }
      }
    

    您的XML示例将包括相应的元素:

    <?xml version="1.0" encoding="UTF-8"?>
    <SampleXml id="7">
        <foo>bar</foo>
    </SampleXml>
    

    但是,如果您想要文字字符串

    更新:Swagger UI 仅支持在响应示例中使用文本 XML 字符串:

    "responses": {
      "200": {
        "description": "OK",
        "schema": {
          "type": "string"
        },
        "examples": {
          "application/xml": "<SampleXml><!-- example XML --></SampleXml>"
        }
      }
    }
    

    但不是在请求正文示例中。

     类似资料:
    • 问题内容: 我正在使用JDK 1.6.0_26中的VisualVM来分析在Tomcat下运行的Java Webapp,但是VisualVM经常告诉我它没有足够的内存来拍摄快照,并使用-Xmx开关为Netbeans提供更多的内存。 。问题是,我在Netbeans之外运行VisualVM,那么如何为jvisualvm.exe提供JVM参数? 问题答案: 应该能够修改内存中的设置 并且在排队。

    • 我们的业务希望创建一个大摇大摆的文档来表示内部服务器。 由于各种原因,每个请求都需要包括一系列无关的头参数: 如果不包括参数,但参数本身与正在发出的请求无关,服务器将拒绝该请求。 Swagger文档的主要目的是生成少量客户机应用程序(我们控制所有这些应用程序)来与服务器交互。 我们可以在每个请求上显式地添加每个参数,但这将导致文档中的重复和客户端中的额外处理。或者,我们可以将这些参数视为元数据,并

    • 我需要为Spring Security的< code>UserDetailsService实现提供一个可选的附加参数。 举个简单的例子,假设我需要为属于用户的宠物传递一个宠物ID。 并非所有用户都有宠物,但如果它们有宠物,则实现 类有一个需要在登录时检索的宠物。 以下是我迄今为止所尝试的: 如何通过Spring安全登录页面传递附加参数 公认答案的问题是,实现在意识到和 我研究过的其他方法包括定制和

    • 我有一个包含子报表的报表模板; 在主报表中,我有一些参数也应该在子报表中可用。 主报表参数如下定义: 在子报表中,我用相同的名称定义了相同的参数: 我为子报表提供了主报表的参数,如下所示:\

    • 我想在我的Swagger-ui界面上修改数据类型下的示例值。目前它包含以下默认值(由Swagger生成): 我想指定实数值,而不是“空”值。PS:我用带注释的spring boot:@ API operation,...

    • 标准中似乎没有规则提到模板参数需要默认参数的情况。 在dcl中。fct。默认值#1 如果在参数声明中指定了初始化子句,则将此初始化子句用作默认参数。缺省参数将用于缺少尾随参数的调用。 在本节中,规则明确描述了何时为函数调用提供默认参数。但是,我在标准中没有找到与上面描述何时提供默认参数作为模板参数的语句类似的引用。 例如