www.state-it.info

Gran base de respuestas a las preguntas de los desarrolladores
Header decor

Como generar swagger.json en windows?

dmitrylee 2018-06-15 08:58:18

Estableció la biblioteca:
composer require --dev zircote/swagger-php

Tratando de generar en windows swagger.json

php vendor/bin/swagger controllers web/docs/swagger.json


y él, de tal:

$ php vendor/bin/swagger controllers web/docs/swagger.json

dir=$(cd "${0%[/\\]*}" > /dev/null; cd../zircote/swagger-php/bin" && pwd)

if [ -d /proc/cygdrive ] && [[ $(which php) == $(readlink -n /proc/cygdrive)/* ]]; then
# We are in Cgywin using Windows de php, so the path must be translated
dir=$(cygpath -m "$dir");
fi

"${dir}/swagger" "[email protected]"

Total answers: 2

galliard 2018-06-15 11:15:45

php vendor/zircote/swagger-php/bin/swagger --output web/docs/swagger.json --exclude vendor

dmitrylee 2018-06-15 11:28:30

tú eres el dios de!


eternalfire 2018-06-15 09:29:23

escribiría una aplicación de consola

<?php

namespace console\controllers;

use Yii;
use yii\console\Controller;

class DocController extends Controller
{
    public function actionBuild(): void
    {
        $swagger = Yii::getAlias('@vendor/bin/swagger'); // путь до swagger
        $source = Yii::getAlias('@api/controllers'); // путь до исходников со swagger нотациями
        $target = Yii::getAlias('@api/web/docs/swagger.json'); // получаемый файл
        passthru('"' . PHP_BINARY . '"' . " \"{$swagger}\" \"{$source}\" --output \"{$target}\"");
    }
}


y puse a funcionar
php yii doc/build

upd

bash scripts no iniciar de виндовской de la consola, tienes que poner el cygwin y convertir bash script utilidad dos2unix y tratar de ejecutar

galliard 2018-06-15 11:26:22

¿por Qué escribir cualquier comando de consola para ejecutar la consola de comandos? Entonces tan escribe:

namespace console\controllers;

use Yii;
use yii\console\Controller;
use function Swagger\scan;

class DocController extends Controller
{
    public function actionBuild(): void
    {
        $scanDir= Yii::getAlias('@api/controllers');
        $pathToJson = Yii::getAlias('@api/web/docs/swagger.json');

        $swagger = scan($scanDir, ['exclude' => ['test', 'vendor', 'web']]);
        $swagger->saveAs($pathToJson);
    }
}


eternalfire 2018-06-15 11:31:32

galliard, para la comodidad de =)


Preguntas relacionadas:

Footer decor

© www.state-it.info | Base of answers to questions for developers and programmers.