Skip to content

ошибка при отдельной схеме для файла в application/octet-stream #29

@eugenezorkin

Description

@eugenezorkin

Если в запросе (application/octet-stream) описать бинарный файл как отдельную схему:

  /api/user/{userId}/uploadImage2:
      post:
          tags:
              - User
          summary: uploads an image2
          description: ''
          operationId: uploadFile2
          parameters:
              -   name: userId
                  in: path
                  description: ID of user to update
                  required: true
                  schema:
                      type: integer
                      format: int64
              -   name: additionalMetadata
                  in: query
                  description: Additional Metadata
                  required: false
                  schema:
                      type: string
          requestBody:
              content:
                  application/octet-stream:
                      schema:
                          $ref: '#/components/schemas/BinaryImage'
          responses:
              '200':
                  description: successful operation

то при генерации вылетает исключение:

php src/bin/bitrixapigen generate -o examples/openapi.yaml -l ru
Cannot load Xdebug - it was already loaded
PHP Fatal error:  Uncaught Error: Call to undefined method Jane\Component\JsonSchemaRuntime\Reference::getType() in /var/www/html/src/Internal/Wrappers/OperationWrapper.php:36
Stack trace:
#0 /var/www/html/src/Internal/BitrixControllersGenerator.php(107): Webpractik\Bitrixapigen\Internal\Wrappers\OperationWrapper->isOctetStreamFile()
#1 /var/www/html/vendor/jane-php/json-schema/Generator/ChainGenerator.php(28): Webpractik\Bitrixapigen\Internal\BitrixControllersGenerator->generate(Object(Jane\Component\OpenApiCommon\Registry\Schema), '', Object(Jane\Component\JsonSchema\Generator\Context\Context))
#2 /var/www/html/src/Adaptation/GenerateCommand.php(75): Jane\Component\JsonSchema\Generator\ChainGenerator->generate(Object(Jane\Component\OpenApiCommon\Registry\Registry))
#3 /var/www/html/vendor/symfony/console/Command/Command.php(326): Webpractik\Bitrixapigen\Adaptation\GenerateCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#4 /var/www/html/vendor/symfony/console/Application.php(1078): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#5 /var/www/html/vendor/symfony/console/Application.php(324): Symfony\Component\Console\Application->doRunCommand(Object(Webpractik\Bitrixapigen\Adaptation\GenerateCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#6 /var/www/html/vendor/symfony/console/Application.php(175): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#7 /var/www/html/src/bin/bitrixapigen(26): Symfony\Component\Console\Application->run()
#8 {main}
  thrown in /var/www/html/src/Internal/Wrappers/OperationWrapper.php on line 36

Fatal error: Uncaught Error: Call to undefined method Jane\Component\JsonSchemaRuntime\Reference::getType() in /var/www/html/src/Internal/Wrappers/OperationWrapper.php:36
Stack trace:
#0 /var/www/html/src/Internal/BitrixControllersGenerator.php(107): Webpractik\Bitrixapigen\Internal\Wrappers\OperationWrapper->isOctetStreamFile()
#1 /var/www/html/vendor/jane-php/json-schema/Generator/ChainGenerator.php(28): Webpractik\Bitrixapigen\Internal\BitrixControllersGenerator->generate(Object(Jane\Component\OpenApiCommon\Registry\Schema), '', Object(Jane\Component\JsonSchema\Generator\Context\Context))
#2 /var/www/html/src/Adaptation/GenerateCommand.php(75): Jane\Component\JsonSchema\Generator\ChainGenerator->generate(Object(Jane\Component\OpenApiCommon\Registry\Registry))
#3 /var/www/html/vendor/symfony/console/Command/Command.php(326): Webpractik\Bitrixapigen\Adaptation\GenerateCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#4 /var/www/html/vendor/symfony/console/Application.php(1078): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#5 /var/www/html/vendor/symfony/console/Application.php(324): Symfony\Component\Console\Application->doRunCommand(Object(Webpractik\Bitrixapigen\Adaptation\GenerateCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#6 /var/www/html/vendor/symfony/console/Application.php(175): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#7 /var/www/html/src/bin/bitrixapigen(26): Symfony\Component\Console\Application->run()
#8 {main}
  thrown in /var/www/html/src/Internal/Wrappers/OperationWrapper.php on line 36
www-data@9e5187c09d78:~/html$ php src/bin/bitrixapigen generate -o examples/openapi.yaml -l ru
Cannot load Xdebug - it was already loaded
PHP Fatal error:  Uncaught Error: Call to undefined method Jane\Component\OpenApiCommon\Guesser\Guess\OperationGuess::getSchema() in /var/www/html/src/Internal/Wrappers/OperationWrapper.php:38
Stack trace:
#0 /var/www/html/src/Internal/BitrixControllersGenerator.php(107): Webpractik\Bitrixapigen\Internal\Wrappers\OperationWrapper->isOctetStreamFile()
#1 /var/www/html/vendor/jane-php/json-schema/Generator/ChainGenerator.php(28): Webpractik\Bitrixapigen\Internal\BitrixControllersGenerator->generate(Object(Jane\Component\OpenApiCommon\Registry\Schema), '', Object(Jane\Component\JsonSchema\Generator\Context\Context))
#2 /var/www/html/src/Adaptation/GenerateCommand.php(75): Jane\Component\JsonSchema\Generator\ChainGenerator->generate(Object(Jane\Component\OpenApiCommon\Registry\Registry))
#3 /var/www/html/vendor/symfony/console/Command/Command.php(326): Webpractik\Bitrixapigen\Adaptation\GenerateCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#4 /var/www/html/vendor/symfony/console/Application.php(1078): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#5 /var/www/html/vendor/symfony/console/Application.php(324): Symfony\Component\Console\Application->doRunCommand(Object(Webpractik\Bitrixapigen\Adaptation\GenerateCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#6 /var/www/html/vendor/symfony/console/Application.php(175): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#7 /var/www/html/src/bin/bitrixapigen(26): Symfony\Component\Console\Application->run()
#8 {main}
  thrown in /var/www/html/src/Internal/Wrappers/OperationWrapper.php on line 38

Fatal error: Uncaught Error: Call to undefined method Jane\Component\OpenApiCommon\Guesser\Guess\OperationGuess::getSchema() in /var/www/html/src/Internal/Wrappers/OperationWrapper.php:38
Stack trace:
#0 /var/www/html/src/Internal/BitrixControllersGenerator.php(107): Webpractik\Bitrixapigen\Internal\Wrappers\OperationWrapper->isOctetStreamFile()
#1 /var/www/html/vendor/jane-php/json-schema/Generator/ChainGenerator.php(28): Webpractik\Bitrixapigen\Internal\BitrixControllersGenerator->generate(Object(Jane\Component\OpenApiCommon\Registry\Schema), '', Object(Jane\Component\JsonSchema\Generator\Context\Context))
#2 /var/www/html/src/Adaptation/GenerateCommand.php(75): Jane\Component\JsonSchema\Generator\ChainGenerator->generate(Object(Jane\Component\OpenApiCommon\Registry\Registry))
#3 /var/www/html/vendor/symfony/console/Command/Command.php(326): Webpractik\Bitrixapigen\Adaptation\GenerateCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#4 /var/www/html/vendor/symfony/console/Application.php(1078): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#5 /var/www/html/vendor/symfony/console/Application.php(324): Symfony\Component\Console\Application->doRunCommand(Object(Webpractik\Bitrixapigen\Adaptation\GenerateCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#6 /var/www/html/vendor/symfony/console/Application.php(175): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#7 /var/www/html/src/bin/bitrixapigen(26): Symfony\Component\Console\Application->run()
#8 {main}
  thrown in /var/www/html/src/Internal/Wrappers/OperationWrapper.php on line 38

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions