如何在swagger ui中映射这个数组json?

时间:2016-08-03 09:33:11

标签: json swagger swagger-ui swagger-php

  

我正在使用php中的swagger ui,我正在尝试映射json   以下

{
    "category": {
    "id": 0,
    "name": "string"
  }
}

我从swagger ui演示中尝试过,但无法像上面那样进行映射 json,我怎么能得到这个json映射,那将是什么注释? 请帮忙

  

我的招摇课是

/**
     * @SWG\Definition(@SWG\Xml(name="MyFl"))
     */ 
    class MyFl
    {

        /**
     * @SWG\Property(format="int64")
     * @var int
     */
    public $id;

    /**
     * @SWG\Property(example="doggie")
     * @var string
     */
    public $name;

    /**
     * @SWG\Property(type="Category")
     */
    public $category;

    }

我的帖子api注释是:

/**
     * @SWG\Post(
     *   path="/docs/fl",
     *   tags={"MY"},
     *   summary="Insert fl info",
     *   operationId="FL",
     *   produces={"application/xml","application/json"},
     *   @SWG\Parameter(in="body",name="body",description="Insert fl info",required=true,@SWG\Schema(ref="#/definitions/MyFl")
     *   ),
     *   @SWG\Response(response="default", description="successful operation")
     * )
     */

通过这个我得到的模型架构如下:

enter image description here

enter image description here

但我想要json架构:

 {
        "category": {
        "id": 0,
        "name": "string"
      }
    }

请帮帮我..

1 个答案:

答案 0 :(得分:1)

免责声明:自从我使用swagger-php注释以来已经有很长一段时间了,所以我不确定这是最好的方法。我的专长更多的是JSON Schema,而不是swagger-php。

您的数据结构实际上是两个对象。第一个是具有一个属性的对象:“category”。那么“category”的值是另一个具有两个属性的对象:“id”和“name”。我很确定你需要将它们建模为两个独立的对象。

/**
 * @SWG\Definition(@SWG\Xml(name="MyFl"))
 */ 
class MyFl
{

    /**
     * @SWG\Property(type=Category)  <-- Don't know if this is the right way to reference another schema.  You will have to check the documentation.
     */
    public $category;

}
/**
 * @SWG\Definition(@SWG\Xml(name="Category"))
 */ 
class Category
{

    /**
     * @SWG\Property(format="int64")
     * @var int
     */
    public $id;

    /**
     * @SWG\Property(example="doggie")
     * @var string
     */
    public $name;

}

希望有所帮助。