• 基于Java后端与Typescript前端的代码自动生成 - malcolmcrum


    Java 后端和 Typescript 前端虽然都是类型语言,但传统上这两个域上的类型之间存在脱节。本文推荐的这个工具让我们在一个地方修改一个方法或类,并立即在其他地方直接使用它,或者在我们误用它时在编译时看到错误。

    这个工具捕获了如此多的错误并使开发速度如此之快,以至于我现在无法想象没有它可以工作。

    我知道有一些类似的工具,但它们要么增加了大量的复杂性(OpenAPI),要么被锁定在某个堆栈中(Remix)。构建我们自己的以相对较小的成本提供了显着的控制(即它并不那么复杂)。

    通常,我们有一个 Java 后端,它公开 HTTP 端点供我们的前端调用。,这个后端提供简单的CRUD创建/读取/更新/删除,有些做特定的请求,还有很多要记住的返回许多不同类型的对象。

    因为我们非常依赖这些 API 调用,所以我们在工具上投入了大量精力,以使我们的开发人员尽可能无缝地进行前端/后端通信。

    在我详细介绍之前,这里有一个简短的概述:

    • Java 接口描述了每个 API 及其端点
    • 每个接口都通过一个特殊的 Javalin 处理程序连接到其后端实现,该处理程序通过 HTTP 公开每个端点,解析参数,然后调用实现
    • 一些自定义工具循环遍历每个接口并为每个接口生成一个 Typescript 类,以及调用每个端点的方法
    • Java 库typescript  -generator  为 API 的参数和返回值中使用的所有类生成 Typescript 定义

    最终结果是,当我们向后端添加端点时,我们的 API 客户端会自动生成调用它的方法,从而使前端到后端的调用几乎与本机调用一样简单。

    继续阅读以了解其工作原理,或查看 Github 上的  演示 。

    API 定义

    这是简单的部分。我们的 API 接口如下所示:

    1. <b>interface</b> UserApi {
    2. UserDto getUser(<b>int</b> userId);
    3. }

    我们 API 的后端实现

    Javalin 是一个出色的网络服务器,它提供了我们所需的功能与简单性之间的平衡。后端调用可能如下所示:

    1. POST /api/UsersApi/getUser
    2. {
    3. 'userId': 1001
    4. }

    因此,我们为每个调用创建一个处理程序。它涉及一些反射,这有点毛茸茸,但让开发人员的事情变得更容易:

    1. <b>public</b> <b>static</b> <b>void</b> main(){
    2. <b>var</b> app = Javalin.create();
    3. <font><i>// UsersApi is the interface that defines the endpoints.</i></font><font>
    4. </font><font><i>// UsersService is the
  • 相关阅读:
    Git远端操作命令
    图片翻译成中文怎么弄?分享三个图片翻译小技巧
    「iOS」暑假第一周 —— ZARA的仿写
    LDR6020芯片驱动未来:TYPE-C桌面显示器的新篇章
    【摸鱼神器】UI库秒变低代码工具——表单篇(一)设计
    Go简单的入门:编译和安装应用
    如何对服务器进行速度的测试
    微信小程序项目源码ssm超市购物系统小程序+后台管理系统|前后分离VUE含论文+PPT+源码
    基于Java+SpringBoot+Thymeleaf+Mysql校园运动场地预约系统设计与实现
    vue实现词云图(echarts/Highcharts)
  • 原文地址:https://blog.csdn.net/weixin_70730532/article/details/126405052