Я пытаюсь использовать Swagger-PHP для генерации файлов JSON, поэтому я могу использовать его с Swagger-UI для автоматической документации.
Я попробовал ссылку: https://github.com/zircote/swagger–php
Также я попытался работать с документацией по адресу 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, но не сохранил этот код (я просто возился), и я не могу его вернуть. Я даже вижу, что я ранее поддержал вопрос и принял ответ! Но выше всего это единственный способ заставить его работать прямо сейчас и лучше, чем ничего.