【问题标题】:Return entity without database Nelmio Symfony返回没有数据库的实体 Nelmio Symfony
【发布时间】:2017-07-04 15:56:48
【问题描述】:

我使用 Nelmio 自动生成我的 api 文档。我想在 responseMap 中返回一个对象,它是一个简单的类(没有关联数据库的实体),如下所示:

/**
* @ApiDoc(
*  description = "Get informations from user.",
*   responseMap = {
*     200 = { "\AppBundle\Entity\MyUserInfos" },
*   },
* )
*
* @Rest\View(statusCode=Response::HTTP_OK)
* @Rest\Get("/my_user_infos")
*/ 
public function getMyUserInfosAction(Request $request) {
...
}


namespace AppBundle\Entity;

/**
 * MyUserInfos
 */
class MyUserInfos
{
 /**
 * @var string
 */
private $username;

/**
 * @var string
 */
private $email;

+getters and setters
}

但是我的 api 文档中没有显示响应对象。谁能帮我 ? 谢谢。

【问题讨论】:

    标签: symfony api-doc nelmioapidocbundle


    【解决方案1】:

    删除类名的前导反斜杠

    /**
    * @ApiDoc(
    *  description = "Get informations from user.",
    *   responseMap = {
    *     200 = { "AppBundle\Entity\MyUserInfos" },
    *   },
    * )
    *
    * @Rest\View(statusCode=Response::HTTP_OK)
    * @Rest\Get("/my_user_infos")
    */ 
    public function getMyUserInfosAction(Request $request) {
    ...
    }
    

    见:https://github.com/nelmio/NelmioApiDocBundle/blob/2d70b0802144fd2c868783c46fa1be4a774967d4/Resources/doc/swagger-support.rst#multiple-response-models

    【讨论】:

    • 感谢您的回答。不幸的是,它并没有更好地工作。我试过带或不带括号,但没有变化。是否可以使用没有 ORM 链接的实体?
    • 这里绝对不需要任何 ORM。你能在你的 ApiDoc 中看到响应图并且比例是空的吗?如果你不使用 ORM,你可能需要添加 Serializer 注释。
    • 我看到了响应映射(“返回”部分,内部代码为 200),但属性为空。我启用了序列化器注释(默认序列化器)。但没有成功。
    • 您的 MyUserInfos 比例是否提供了注释?捆绑包必须包含 ORM 或序列化器注释之类的信息,才能知道哪些 proporties 可用。
    • 好的。所以我在所有属性中都有 @Type("string") 之类的注释,然后启用了 JMS 序列化程序,现在 MyUserInfos 属性显示在 api doc 中。你是这么想的?
    猜你喜欢
    • 2015-03-15
    • 2018-06-03
    • 1970-01-01
    • 2018-06-22
    • 1970-01-01
    • 1970-01-01
    • 2019-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多