我正在尝试通过JHipster使用指定的OpenAPI选项生成一个项目。
- 创建一个OpenAPI规范文件以定义用于定义应用程序的实体和路径。
- 创建一个JHipster .jdl文件以指定JHipster项目参数。
- 没有否实体定义-旨在由OpenAPI文件提供。
- 执行JHipster(
> jhipster import-jdl <file>.jdl
)。 - 将我的OpenAPI文件复制到
src/main/resources/swagger/api.yml
中。 - 执行OpenAPI子生成器(
> mvnw generate-sources
)。
这会生成一个微服务项目,其中包括由OpenAPI子生成器生成的相关OpenAPI类。
缺少一个非常明显的东西:没有用于处理对象持久性的代码。
我需要做什么才能提供此功能?
我知道JHipster有一个实体子生成器(实体也可以在JDL中定义)。这将生成与已定义实体相关的大量代码,包括持久性逻辑。但是,这似乎与在OpenAPI规范文件中定义实体的想法不太吻合。我无法想到这两种技术可能如何协同工作。
有人这样做吗?
以下是与好奇相关的文件:
[这显然是一个非常简单的应用程序,持久存储任何内容都没有多大意义,但我只是为了举例说明。]
jhipster.jdl:
application {
config {
packageName com.example
baseName echomicroservice
applicationType microservice
serverPort 9100
buildTool maven
authenticationType jwt
clientPackageManager npm
serviceDiscoveryType no
messageBroker false
searchEngine false
databaseType sql
devDatabaseType mysql
prodDatabaseType mysql
cacheProvider hazelcast
enableHibernateCache false
clientFramework angularX
enableSwaggerCodegen true
}
}
echo-api.yml:
openapi: '3.0.1'
info:
title: 'echomicroservice'
version: 0.0.1
servers:
- url: http://localhost:9100
description: Development server
- url: https://localhost:9100
description: Development server with TLS Profile
paths:
/random:
get:
summary: Returns a random message
description: Returns a random message
responses:
'200':
description: Random response
content:
application/json:
schema:
$ref: '#/components/schemas/Echo'
/echo:
post:
summary: Echoes a specified message
description: Echoes a specified message
requestBody:
description: Echo request
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Echo'
responses:
'200':
description: Echo response
content:
application/json:
schema:
$ref: '#/components/schemas/Echo'
components:
schemas:
Echo:
type: object
properties:
message:
type: string