测试数组作为自定义类的属性

时间:2013-12-22 13:02:20

标签: php restler swagger

如何在模型类中将数组定义为属性?

让我总结一下我的所作所为......

我的包含数组的模型类

 class Author {

        /**
         * @var string {@from body} 
         * name of the Author {@required true}
         */
        public $name = 'Name';

        /**
         * @var string {@type email} {@from body}
         * email id of the Author
         */
        public $email = 'name@domain.com';

        /**
         *  @var array $arr {@type array} array of person
         * {@required true}
         */
        public $arr = array();

    }

我测试throw restler的功能是:

/**
     * POST
     * post Author
     *
     * @param {@type Author} $a
     *
     * @return Author
     */
    function postAuthor(Author $a) {
        return $a;
    }

当我尝试远程测试和类函数抛出index.html时,它返回值:

{
    "name":"",
    "email":"",
    "arr":""
}

我需要的是按以下方式返回:

{
        "name":"",
        "email":"",
        "arr":[]
    }

如何以及如何做到这一点?

1 个答案:

答案 0 :(得分:0)

据我所知,您正在讨论Restler Explorer将arr作为字符串而不是数组显示请求正文

这是因为默认响应被创建为一个简单的帮助器来减少输入,它不支持复杂类型

我们正在为我们目前正在开发的新资源管理器添加Swagger 1.2支持

它将包含正确构建请求正文的帮助程序的高级版本


更新以进一步回答

如果您使用Restler 3.0 RC5(目前仅在v3分支中可用)并评论您的api模型类,如下所示,您可以使其正常工作

/**
 *  @var array $arr {@type Person} array of person
 * {@required true}
 */
public $arr = array();