NelmioApiDocBundle не генерирует документацию

Я хочу использовать NelmioApiDocBundle для автоматического создания документации. Я установил стандартный Symfony doc для его установки и настройки: https://symfony.com/doc/current/bundles/NelmioApiDocBundle/index.html. К сожалению, когда я захожу в / api / doc, мой документ пуст.

Я использую Symfony 3.4 и NelmioApiDocBundle в версии 3.2.0.

Вот мой конфиг:

nelmio_api_doc:
areas:
path_patterns: # an array of regexps
- ^/api(?!/doc$)
host_patterns:
- ^api\.
documentation:
host: 127.0.0.1
schemes: [http, https]
info:
title: Thanatos API
description: This is documentation of Thanatos
version: 1.0.0
security:
- Bearer: []

И аннотации в моем контроллере (в начале я хочу видеть любые данные в моей документации):

/**
* @Route(
*  "/",
*  name="thanatos_dashboard_index",
* )
*
* @SWG\Response(
*     response=200,
*     description="Returns the rewards of an user",
*     @SWG\Schema(
*         type="array",
*         @SWG\Items(ref=@Model(type=Reward::class, groups={"full"}))
*     )
* )
* @SWG\Parameter(
*     name="order",
*     in="query",
*     type="string",
*     description="The field used to order rewards"* )
* @SWG\Tag(name="rewards")
* @NelmioSecurity(name="Bearer")
*/
public function indexAction()
{
return $this->render("@AppThanatos/Dashboard/index.html.twig");
}

В / api / doc я вижу «Операции не определены в спецификации!» Что я делаю неправильно?


@ОБНОВИТЬ

Я только начинаю использовать саами: http://symfony.com/projects/sami

1

Решение

У меня такая же проблема. Работая на моем Mac, я всегда ERR_EMPTY_RESPONSE (используя Chrome), но в производственной среде та же конфигурация работает нормально.

Единственная разница была в Xdebug, я пытался отключить модуль, и теперь все работает.

0

Другие решения

Ресурсы обычно устанавливаются композитором при любом командном событии (обычно post-install-cmd или же post-update-cmd) вызывает ScriptHandler::installAssets скрипт. Если вы не настроили этот скрипт, вы можете вручную выполнить эту команду:

php bin/console assets:install --symlink
0

Попробуй это :

замещать

 * @Route(
*  "/",
*  name="thanatos_dashboard_index",
* )

От

 @Rest\Get("/getVehicles")

И, в вашем контроллере действий, вернуть массив или объект, как это:

    $em = $this->getDoctrine();
return $em->getRepository('AppBundle:Vehicle')->findAll();
-1
По вопросам рекламы [email protected]