Поправил генерацию spec для связывания дочерних сущностей
This commit is contained in:
parent
b5d021d03c
commit
46e48f0984
|
|
@ -46,3 +46,7 @@ api-sandbox/app/api.spec.json
|
|||
/xcpdata.trace.db
|
||||
web-ui/vue-app/TODO.md
|
||||
web-ui/vue-app/src/generated/*
|
||||
/api-sandbox/src/main/resources/htdocs/api-sandbox/
|
||||
api-sandbox/app/dist/api.spec.json
|
||||
api-sandbox/app/node/
|
||||
api.spec.json
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import $ from 'jquery'
|
|||
|
||||
let apiSpec = null
|
||||
let currentUser = null
|
||||
const apiEndpoint = "/api";
|
||||
|
||||
async function loadUserProfile() {
|
||||
try {
|
||||
|
|
@ -12,7 +13,7 @@ async function loadUserProfile() {
|
|||
id: Date.now()
|
||||
}
|
||||
|
||||
const response = await fetch('http://localhost:8080/api', {
|
||||
const response = await fetch(apiEndpoint, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
|
|
@ -215,7 +216,7 @@ async function sendRequest() {
|
|||
$('#request').text('')
|
||||
|
||||
try {
|
||||
const response = await fetch('http://localhost:8080/api', {
|
||||
const response = await fetch(apiEndpoint, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import copy from 'rollup-plugin-copy'
|
|||
export default defineConfig({
|
||||
root: '.',
|
||||
build: {
|
||||
outDir: 'dist',
|
||||
outDir: '../src/main/resources/htdocs/api-sandbox',
|
||||
rollupOptions: {
|
||||
plugins: [
|
||||
copy({
|
||||
|
|
|
|||
|
|
@ -17,4 +17,48 @@
|
|||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>com.github.eirslett</groupId>
|
||||
<artifactId>frontend-maven-plugin</artifactId>
|
||||
<version>1.15.0</version>
|
||||
<configuration>
|
||||
<workingDirectory>app</workingDirectory>
|
||||
<installDirectory>app</installDirectory>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>install node and npm</id>
|
||||
<goals>
|
||||
<goal>install-node-and-npm</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<nodeVersion>v22.12.0</nodeVersion>
|
||||
<npmVersion>10.8.2</npmVersion>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>npm install</id>
|
||||
<goals>
|
||||
<goal>npm</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<arguments>install</arguments>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>npm build</id>
|
||||
<goals>
|
||||
<goal>npm</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<arguments>run build</arguments>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
||||
|
|
@ -122,9 +122,28 @@ public class SpecGenerator {
|
|||
continue;
|
||||
}
|
||||
|
||||
for (var aClass : classAnnotation.directInheritors()) {
|
||||
if (!types.contains(aClass)) {
|
||||
types.add(aClass);
|
||||
typesQueue.add(aClass);
|
||||
}
|
||||
}
|
||||
|
||||
var typeDescriptor = typesArray.addObject();
|
||||
typeDescriptor.put("name", classAnnotation.alias().isEmpty() ? type.getSimpleName() : classAnnotation.alias());
|
||||
typeDescriptor.put("type", "class");
|
||||
var parents = typeDescriptor.putArray("parents");
|
||||
for (var aClass : type.getInterfaces()) {
|
||||
if (!types.contains(aClass)) {
|
||||
types.add(aClass);
|
||||
typesQueue.add(aClass);
|
||||
}
|
||||
if (!aClass.isAnnotationPresent(GenerateApiSpec.class)) {
|
||||
continue;
|
||||
}
|
||||
parents.add(aClass.getSimpleName());
|
||||
}
|
||||
|
||||
var fields = typeDescriptor.putArray("fields");
|
||||
for (var method : type.getMethods()) {
|
||||
var methodAnnotation = method.getAnnotation(GenerateApiSpec.class);
|
||||
|
|
|
|||
|
|
@ -11,4 +11,6 @@ public @interface GenerateApiSpec {
|
|||
String alias() default "";
|
||||
|
||||
Class<?> type() default void.class;
|
||||
|
||||
Class<?>[] directInheritors() default {};
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue