Tenemos un proyecto en el que usamos varias bases de datos con Spring Boot como backend y AngularJS como frontend. Usamos nuestro propio paquete maven de intercambio que nos informa sobre la estructura de la base de datos de la siguiente manera:
public class Place { public UUID placeID; public LocalDate start; public LocalDate end; public String network; public String placeName; public String placeNumber; public String project; }Una clase muy básica, por ejemplo, y queremos convertirla a JavaScript para poder usarla también en nuestra interfaz. Debido a que estamos usando Camunda como motor, necesitamos acceder a los mismos nombres de variables en el front-end y el back-end. Para ese propósito, hemos creado una clase Java con constantes para que podamos reutilizarlas en diferentes lugares sin tener problemas con las mayúsculas, por ejemplo:
public class CamVariable { // Process public static final String ASSIGNEE = "assignee"; public static final String NAME = "name"; public static final String PLACE = "place"; }Actualmente necesitamos mantener la misma variable también en JavaScript para tenerlos allí, lo cual es redundante y realmente no es un buen enfoque. Pero no sabemos cómo hacerlo diferente y es por eso que estoy preguntando cómo podemos convertir la clase Java en algún código que sea legible para JavaScript.
const CamVariable = { AREA: 'area', AREA_ID: 'areaID', };Eso depende.
Como hay desarrollo web entre los temas y no hay NodeJS, mi suposición es que esta es una pregunta relacionada con la comunicación web y HTTP. Entonces, JavaScript es del lado del cliente HTTP ejecutado por el navegador y la clase Java es del lado del servidor, por ejemplo, un Servlet.
En Java hay objetos de solicitud y respuesta. Para devolver un valor al cliente, lo que debe hacer es escribir el valor como una cadena en la respuesta.
respuesta.getWriter().append(valor.toString());
Si su servidor web expone API y sus DTO son modelos de API válidos, puede exponerlo a través de la descripción de Swagger. Integrar Swagger en SpringBoot es muy fácil: https://www.baeldung.com/swagger-2-documentation-for-spring-rest-api y se puede hacer casi declarativamente.
Una vez hecho esto, ya puede representar su API y DTO en un lenguaje de descripción fácil de usar (JSON), por lo que puede validar/usar/construir su modelo front-end contra la representación DTO del servidor al convertirlo en objetos JS.
Para el casting se puede usar el analizador swagger https://github.com/APIDevTools/swagger-parser
SwaggerParser.validate(myAPI, (err, api) => { console.log("API name: %s, Version: %s", api.info.title, api.info.version); }); En este ejemplo, su variable api contendrá la propiedad de definitions con todos los DTO de su servidor público, para que pueda usarla dinámicamente. O, si lo necesita en tiempo de compilación, genere estos objetos como parte de la acción previa a la compilación.
Espero que esto ayude.