#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, а затем каким-то образом преобразую их в сущности
- В качестве третьего решения я подумал, что, возможно, есть способ перенести JSONSchema в базу данных mysql, а затем создать из нее сущности (для этого есть генератор символов/доктрин) (здесь я немного боюсь потерять некоторые отношения между таблицами).
Оба решения хороши для меня , но я думаю, что 1 лучше. Итак , мой вопрос в том, знаете ли вы, ребята, какие-либо библиотеки, или вы можете указать мне, как преобразовать JSONSchema в Swagger ?
Моя цель состоит в том, чтобы иметь генератор, который создает красивые и чистые объекты PHP-доктрины со всеми отношениями и предпочтительно проверкой без какого-либо дополнительного кода (некоторые библиотеки создают много кода поверх классов PHP).
Заранее спасибо за любую помощь и предложения
Комментарии:
1. Я действительно удивляюсь, почему на этом посту есть -1.
2. github.com/openapi-contrib/json-schema-to-openapi-schema можно преобразовать схему JSON в определение схемы OpenAPI
3. Спасибо. Я обязательно это проверю.