模型的示例性标记

* @SWG\Model(
 * id="UserSubscriptionSearchResultsFilter",
 *  @SWG\Property(name="total", type="integer"),
 *  @SWG\Property(name="perPage", type="integer"),
 *  @SWG\Property(name="query", type="string"),
 *  @SWG\Property(name="sortColumn", type="string"),
 *  @SWG\Property(name="sortDirection", type="string"),
 * )
 */

/**
 * @SWG\Model(
 * id="UserSubscriptionSearchResults",
 *  @SWG\Property(name="results",type="array", items="$ref:UserSubscriptionRepository"),
 *  @SWG\Property(name="total", type="integer"),
 *  @SWG\Property(name="filter",type="object", uniqueItems="$ref:UserSubscriptionSearchResultsFilter")
 * )
 */

现在,该架构如下所示:
"filter": "object"

相反,我想看到的是:
"filter":  {
        "total": 0,
        "perPage": 0,
        "query": "",
        "sortColumn": "",
        "sortDirection": ""
      }

现在,我只能创建一个看起来与此相对类似的数组对象,但是它仍然不是完整的规范。

我在这里阅读过类似的问题:
https://github.com/swagger-api/swagger-spec/issues/38
https://github.com/mission-liao/pyswagger/issues/18

但是我没有找到明确的答案。

最佳答案

在您的情况下,Swagger 2.0中的正确架构应类似于:

"definitions": {
  "filter": {
    "type": "object",
    "properties": {
       "total": {
          "type": "integer"
       },
       "perPage": {
          "type": "integer"
       },
       "query": {
          "type": "string"
       },
       "sortColumn": {
          "type": "string"
       },
       "sortDirection": {
          "type": "string"
       }
    }
  }
}

我猜您使用的项目是swagger-php
这是他们从here声明模型的示例引述:
<?php
namespace PetstoreIO;
/**
 * @SWG\Definition(
 *   @SWG\Xml(name="Category")
 * )
 */
class Category
{
    /**
     * @SWG\Property(format="int64")
     * @var int
     */
    public $id;
    /**
     * @SWG\Property()
     * @var string
     */
    public $name;
}

从1.2升级到2.0时,这些术语从“模型”更改为“定义”。

关于swagger-php - 摇摇PHP对象而不是数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31038600/

10-16 18:42