Преобразование JsonSchema в Enties доктрины (или Swagger, JSON)

#symfony #doctrine #swagger #jsonschema #schema.org

Вопрос:

Мне был предоставлен большой набор JSONSchema (проект 7), описывающий модель входящих сообщений для API SOAP.

Исходя из этого, я должен создавать/генерировать объекты PHP/Doctrine для сохранения входящих сообщений json. Поскольку это большой набор файлов, ручная работа не является вариантом. Мне нужно построить генератор.

Я провел некоторое исследование, и есть некоторые библиотеки php, которые преобразуют JSONSchema в модель PHP, но не в объекты доктрины.

Я знаю, что существует проект ApiPlatrform, основанный на Symfony (я также использую Symfony), в котором есть инструмент генератора схем для создания сущностей. Платформа API охватывает открытые веб-стандарты (Swagger, JSON-LD, GraphQL, Hydra, HAL, JWT, OAuth, HTTP.), но, к сожалению, она не поддерживает jsonSchema.

Использование этого генератора было бы идеальным решением для меня, потому что я мог бы перейти непосредственно от JSONSchema к сущностям Doctrine Symfony.

Итак , теперь я ищу способ преобразовать JSONSchema в, я думаю, что для моего проекта было бы лучше всего использовать Swagger 3 (позже я мог бы использовать Swagger для своего API). Я не нашел никаких библиотек или документации, которые могли бы это сделать.

Есть несколько библиотек, которые могут создавать классы PHP (на данный момент, я думаю, лучше всего использовать swaggest), но ни одной для создания сущностей.

Так что теперь у меня есть варианты:

1.JSONSchema, например, для чванства и использования генератора схем ApiPlatform для создания сущностей

2.Я использую Swaggest для создания классов моделей PHP, а затем каким-то образом преобразую их в сущности

  1. В качестве третьего решения я подумал, что, возможно, есть способ перенести JSONSchema в базу данных mysql, а затем создать из нее сущности (для этого есть генератор символов/доктрин) (здесь я немного боюсь потерять некоторые отношения между таблицами).

Оба решения хороши для меня , но я думаю, что 1 лучше. Итак , мой вопрос в том, знаете ли вы, ребята, какие-либо библиотеки, или вы можете указать мне, как преобразовать JSONSchema в Swagger ?

Моя цель состоит в том, чтобы иметь генератор, который создает красивые и чистые объекты PHP-доктрины со всеми отношениями и предпочтительно проверкой без какого-либо дополнительного кода (некоторые библиотеки создают много кода поверх классов PHP).

Заранее спасибо за любую помощь и предложения

Комментарии:

1. Я действительно удивляюсь, почему на этом посту есть -1.

2. github.com/openapi-contrib/json-schema-to-openapi-schema можно преобразовать схему JSON в определение схемы OpenAPI

3. Спасибо. Я обязательно это проверю.