Tôi có một ứng dụng máy chủ Java, sử dụng Jackson để sắp xếp một cách tổng quát DTO bằng cách sử dụng API phản chiếu. Ví dụ cho giao diện DTO này:Tạo giao diện kiểu từ giao diện Java
package com.acme.library;
public interface Book {
com.acme.library.Author getAuthor();
String getTitle();
}
Từ việc thực hiện POJO của giao diện này, Jackson sẽ quát serialize các thực thể sau:
{
"author": { "name": "F. Scott Fitzgerald"},
"title": "The Great Gatsby"
}
tải trọng này sẽ được nhận được bằng cách sử dụng HTTP GET từ ứng dụng nguyên cảo của tôi , đó là AngularJS dựa trên:
$http.get("http://localhost/books/0743273567")
.success((book: Book) => { ... });
Vì vậy mà tôi có thể sử dụng bản chất được đánh máy mạnh mẽ của TypeScript, tôi thấy mình tự tay mã hóa như sau giao diện kiểu chữ:
module com.acme.library {
export interface Book {
author: com.acme.library.Author;
title: String;
}
}
Kết quả là, tôi phải duy trì hai bản sao của cùng giao diện này - rất cồng kềnh. Điều này đặc biệt khó chịu, vì tôi muốn có cùng một bình luận javadoc/jsdoc trên cả hai giao diện, trong đó bao gồm toàn bộ đống bản sao dán &.
Tôi muốn tìm cơ chế để tự động hóa quá trình này.
Java là ngôn ngữ phát triển chính của tôi. Như vậy, tôi muốn tìm một số công cụ có khả năng chuyển đổi từ việc khai báo giao diện Java (thông qua API phản chiếu?) Thành giao diện TypeScript có liên quan.
Công cụ duy nhất tôi đã phát hiện trong miền này là gói NPM ts-java
. Tuy nhiên, điều này là quá nặng đối với trường hợp sử dụng của tôi. Nó thêm các phương thức từ hệ thống phân cấp Đối tượng vào mỗi giao diện, ví dụ: hashCode()
, wait()
, getClass()
, v.v.
Tôi hiện đang tìm kiếm điều này. Bạn đã tìm thấy một cái gì đó thú vị? – iberbeu
@iberbeu - không sợ – jwa