Модель базы данных и методология api-first (openapi) с JHipster и Java Spring

Я пытаюсь изучить и использовать методологию API-первых с JHipster в Java и Spring. До сих пор я генерировал файл yaml, описывающий мой API в спецификации OpenAPI 3.0, затем я генерировал Java-классы, такие как контроллеры и делегаты, для реализации для служб и т. Д., Но я дошел до того, что мне стало интересно о модели базы данных проекта (db - это PostgreSQL),

Когда или как мне добавить схему базы данных для API? Должен ли JHipster автоматически генерировать Hibernate Entities для моего проекта, используя файл yaml (сейчас этого не было), или я должен вручную создать модель базы данных в другом инструменте? или мне нужно подготовить модель базы данных перед созданием API?

Есть ли способ конвертировать OpenAPI в объекты Hibernate и импортировать схему? Каков правильный рабочий процесс в JHipster в контексте схемы api-first + Hibernate/database?

Я думаю, что лучшим способом было бы подготовить API, а все остальное сделать автоматически.

Мой тип данных описан так в api.yaml:

components:
schemas:
    Advert:
        description: Advert data type
        required:
            - id
            - title
            - description
            - ownerId
            - phoneNumber
            - categoryId
            - cityCode
            - creationDate
        type: object
        properties:
            id:
                description: Id
                type: integer
            title:
                description: Title of advert
                type: string
            description:
                description: Description of advert
                type: string
            ownerId:
                description: Id of owner user.
                type: integer
            phoneNumber:
                description: Advert's phone contact number.
                type: number
            viewCount:
                description: View count.
                type: integer
            categoryId:
                description: Category of advert.
                type: integer
            images:
                description: URLs of images.
                type: array
                items:
                    type: string
            cityCode:
                description: City code.
                type: string
            creationDate:
                description: Creation date.
                type: string

0 ответов

Другие вопросы по тегам