Как мне заставить php-swagger забрать мой метод HTTP GET?

<?php
/**
* @SWG\Resource(
*      basePath="http://dizplayzone.com/api",
*      resourcePath="/account",
*      description="Read information on a company dashboard",
*      swaggerVersion="1.2",
*      apiVersion="1.1",
* )
*/

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\JsonResponse;

$account = $app['controllers_factory'];

/**
*      /account/{id}
*      ------------------------------------------------------------------------
*
*      @SWG\Api(
*              path="/account/{id}",
*              @SWG\Operation(
*                      method="GET",
*                      summary="Returns info from a company dashboard",
*                      notes="Returns info from a company dashboard",
*                      type="account",
*                      nickname="view_account",
*                      @SWG\Parameter(
*                              name="id",
*                              description="Company ID",
*                              required=true,
*                              type="integer",
*                              paramType="path"*                      ),
*                      @SWG\ResponseMessage(code=404, message="Bad, really bad name.")
*              ),
*      )
*
*
* @trans foo,bar
*
*/

$account->get('/account/{id}', function ($id) use ($app) {

...return "Welcome {$user['username']}!";
});

/**
*      /account/{id}
*      ------------------------------------------------------------------------
*
*      @SWG\Api(
*              path="/account/{id}",
*              @SWG\Operation(
*                      method="POST",
*                      summary="Add info to a company dashboard",
*                      notes="Add info to a company dashboard",
*                      type="account",
*                      nickname="post_to_account",
*                      @SWG\Parameter(
*                              name="id",
*                              description="Company ID",
*                              required=true,
*                              type="integer",
*                              paramType="path"*                      ),
*                      @SWG\ResponseMessage(code=404, message="Bad, really bad name.")
*              )
*      )
*
*
*/

$account->post('/account/{id}', function ($id) use ($app) {

....
});

return $account;

Однако swagger-php возвращает этот ответ JSON:

{
"basePath":"http://dizplayzone.com/api",
"swaggerVersion":"1.2",
"apiVersion":"1.1",
"resourcePath":"/account",
"apis":[
{
"path":"/account/{id}",
"operations":[
{
"method":"POST",
"summary":"Add info to a company dashboard",
"nickname":"post_to_account",
"type":"account",
"parameters":[
{
"paramType":"path",
"name":"id",
"type":"integer",
"required":true,
"description":"Company ID"}
],
"responseMessages":[
{
"code":404,
"message":"Bad, really bad name."}
],
"notes":"Add info to a company dashboard"}
]
}
]

}

Обратите внимание, что он игнорирует операцию HTTP метода GET ??
Я думаю, что этот точный синтаксис для аннотаций работал отлично пару часов назад, но я должен был что-то изменить, потому что теперь он больше не работает ….
Есть идеи ?

0

Решение

Хм странно, теперь я удалил всю аннотацию для GET, переписал ее и заново вставил, и она работает ….

0

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

Теперь я нашел причину, по которой мой метод GET был проигнорирован.
Оказывается, что php-swagger будет игнорировать любой докблок, содержащий TABS, даже если структура аннотации на 100% правильная.
Надеюсь, что это помогает другим

0

По вопросам рекламы [email protected]