Swagger-PHP для создания JSON-файла для Swagger-UI

Я пытаюсь использовать Swagger-PHP для генерации файлов JSON, поэтому я могу использовать его с Swagger-UI для автоматической документации.

Я попробовал ссылку: https://github.com/zircote/swaggerphp

Также я попытался работать с документацией по адресу http://zircote.com/swagger-php/installation.html

Но моя неудача, я не могу ее реализовать.

Я могу правильно установить композитор. Также установлен пакет Swagger-PHP.

Но проблема в том, что я не могу использовать / понять примеры тестов, предоставленные ими.

Поэтому, если кто-то работал над этим, помогите!

Заранее спасибо !!

Вы просто добавляете комментарии в виде комментариев в свой код, пример модели:

/** * @SWG\Model( * id="vps", * required="['type', 'hostname']", * @SWG\Property(name="hostname", type="string"), * @SWG\Property(name="label", type="string"), * @SWG\Property(name="type", type="string", enum="['vps', 'dedicated']") * ) */ class HostVps extends Host implements ResourceInterface { // ... } 

Пример контроллера:

 /** * @SWG\Resource( * basePath="http://skyapi.dev", * resourcePath="/vps", * @SWG\Api( * path="/vps", * @SWG\Operation( * method="GET", * type="array", * summary="Fetch vps lists", * nickname="vps/index", * @SWG\Parameter( * name="expand", * description="Models to expand", * paramType="query", * type="string", * defaultValue="vps,os_template" * ) * ) * ) * ) */ class VpsController extends Controller { // ... } 

Затем в консоли:

 php swagger.phar ./your-code-source/ -o ./directory-for-output-files 

Затем создайте ссылки на созданные файлы в пользовательском интерфейсе Swagger. Это помощь?

BTW, эта документация: http://zircote.com/swagger-php/annotations.html является неполной. Лучше полагаться на ошибки парсера, например:

 php swagger.phar ./skynode-api/api/ -o ./foo Swagger-PHP 0.9.0 ----------------- [INFO] Skipping unsupported property: "foo" for @Swagger\Annotations\Property, expecting "name", "description", "type", "format", "items", "uniqueItems", "required", "minimum", "maximum", "enum", "defaultValue", "_partialId", "_partials" in HostVps in /home/kane/some-dir/some-file.php on line 3 

EDIT : Swagger 2.0 имеет неплохие спецификации GitHub

BTW, подумайте о том, чтобы использовать редактор Swagger для создания файла спецификации api (json / yaml) для использования в пользовательском интерфейсе Swagger. Причина встроенной документации SWG в php-файлах является просто уродливой, и у вас нет поддержки автозаполнения в среде IDE.

В последнее время я изо всех сил пытался справиться с этим, увидеть некоторые различия и сумел заставить его работать и хотел, возможно, сократить кого-то еще:

 // In the controller /** * (other swagger stuff like @SWG\Put, etc...) * @SWG\Parameter(name="type",in="path",description="project|task", * required=true, type="array", * @SWG\Items(type="string"), * default="project", * enum={"project", "task"}), * (next @SWG\Parameter or closing paran, etc) */ 

Ранее я получил эту работу с перечислением в модели и ссылкой @SWG \ Items, но не сохранил этот код (я просто возился), и я не могу его вернуть. Я даже вижу, что я ранее поддержал вопрос и принял ответ! Но выше всего это единственный способ заставить его работать прямо сейчас и лучше, чем ничего.