Possiedo un'applicazione server Java, che utilizza Jackson per serializzare genericamente DTO utilizzando l'API di reflection. Per esempio per questa interfaccia DTO:Genera interfacce dattiloscritto dalle interfacce Java
package com.acme.library;
public interface Book {
com.acme.library.Author getAuthor();
String getTitle();
}
Dal implementazione POJO di questa interfaccia, Jackson sarà genericamente serializzare i seguenti entità:
{
"author": { "name": "F. Scott Fitzgerald"},
"title": "The Great Gatsby"
}
Questo payload sarà essere ricevuto utilizzando un HTTP GET dalla mia applicazione dattiloscritto , che è AngularJS-based:
$http.get("http://localhost/books/0743273567")
.success((book: Book) => { ... });
modo che io sono in grado di utilizzare la natura fortemente tipizzato del dattiloscritto, mi ritrovo a mano codifica il seguente Interfaccia dattiloscritto:
module com.acme.library {
export interface Book {
author: com.acme.library.Author;
title: String;
}
}
Di conseguenza, devo mantenere due copie di questo stessa interfaccia - che è ingombrante al meglio. Ciò diventa particolarmente sgradevole, poiché mi piacerebbe avere gli stessi commenti javadoc/jsdoc su entrambe le interfacce, che coinvolge un intero heap di copia & incolla.
Mi piacerebbe trovare un meccanismo per automatizzare questo processo.
Java è il mio linguaggio di sviluppo principale. Come tale, mi piacerebbe trovare qualche strumento che sia in grado di convertire dalla dichiarazione dell'interfaccia Java (tramite la reflection API?) All'interfaccia TypeScript pertinente.
L'unico strumento che ho scoperto in questo dominio è il pacchetto NPM ts-java
. Tuttavia, questo è troppo pesante per il mio caso d'uso. Aggiunge metodi dalla gerarchia Object a ciascuna interfaccia, ad es. hashCode()
, wait()
, getClass()
,
Attualmente sto cercando anche questo. Hai trovato qualcosa di interessante? – iberbeu
@iberbeu - Non ha paura – jwa