0

ドキュメントに Swagger を使用する REST webapp があり、 body パラメーターを除いてうまく機能しています。本体のすべてのプロパティはオプションです

Swagger-ui

私の Project オブジェクトは XSD ファイルで生成され、minOccurs=1 maxOccurs=1 または unboundedのすべての要素と、すべての属性がuse=requiredに設定されていることを確認しました。これには何の影響もないようです。次に試したのは、追加することでした

@ApiParam(value = "プロジェクト本体", required = true) @RequestBody ProjectInfo プロジェクト

しかし、Project オブジェクト自体が既に必要であるため、これは効果がありませんでした。Project のプロパティも必要であることを Swagger に伝える方法はありますか? Swagger に SpringFox 依存関係を使用しています。

アップデート

生成されたモデルに@ApiModel@ApiModelProperty(value = "プロジェクトの一意の名前", required = true)を追加することで、それを必要とすることができました。

//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.11 
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
// Any modifications to this file will be lost upon recompilation of the source schema. 
// Generated on: 2016.02.12 at 09:33:59 AM CET 
//


package be.smartask.api.model.post;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.xml.bind.annotation.*;


/**
 * <p>Java class for anonymous complex type.
 * <p>
 * <p>The following schema fragment specifies the expected content contained within this class.
 * <p>
 * <pre>
 * &lt;complexType&gt;
 *   &lt;complexContent&gt;
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *     &lt;/restriction&gt;
 *   &lt;/complexContent&gt;
 * &lt;/complexType&gt;
 * </pre>
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "")
@XmlRootElement(name = "projectInfo")
@ApiModel
public class ProjectInfo {

    @XmlAttribute(name = "name", required = true)
    protected String name;

    /**
     * Gets the value of the name property.
     *
     * @return possible object is
     * {@link String }
     */
    @ApiModelProperty(value = "The unique name of the project", required = true)
    public String getName() {
        return name;
    }

    /**
     * Sets the value of the name property.
     *
     * @param value allowed object is
     *              {@link String }
     */
    public void setName(String value) {
        this.name = value;
    }

}

しかし、私の質問は、XSD ファイルに Swagger 注釈を追加して、それ自体が生成されるようにすることはできますか? に変更されました。

4

1 に答える 1