如何在 Vaadin 12 中创建 Web 服务? [英] How can one create webservices in Vaadin 12?

查看:27
本文介绍了如何在 Vaadin 12 中创建 Web 服务?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在考虑将 Vaadin 12 用于我的前端开发(我们主要是纯 Java 工程师,我希望将大部分代码保留在 Java 中).但是,我们可能还需要支持网络服务.如果我们不使用 Vaadin,我们只会使用 Jersey &DropWizard,创建网络服务很简单.

I am considering using Vaadin 12 for my front-end development (we're mainly pure Java engineers and I'd like to keep the code in Java for the most part). However, we may need to also support webservices. If we didn't use Vaadin, we'd just use Jersey & DropWizard, and creating webservices is straightforward.

但是在 Vaadin 12 中,我可以使用最少的附加代码/技巧来创建网络服务吗?(我在 Vaadin 8 中看到了如何执行此操作的示例,但 Vaadin 10 & 12 与我阅读的内容有很大不同.)特别是,有人可以指出我如何在 Vaadin 12 中执行此操作的任何示例代码/示例?

But in Vaadin 12, can I create webservices with minimal additional code/hacks? (I saw examples of how to do so in Vaadin 8, but Vaadin 10 & 12 is substantively different from what I read.) In particular, any sample code/example that someone could point me to how to do that in Vaadin 12?

(相关说明:这是一个坏"主意吗,我应该为我的一两个网络服务实现一个单独的系统(在 DropWizard 中使用 Jersey)吗?...我宁愿不必支持当我 99% 的逻辑可能在 Vaadin 系统中时,全新的服务器/实例等仅用于几个 Web 服务.)

(On a related note: Is this a "bad" idea and I should just implement a separate system (using Jersey in DropWizard) for my one or two webservices?...I'd rather not to have to support a whole new server/instance etc just for a couple webservices when 99% of my logic would presumably be in the Vaadin system.)

推荐答案

在这个意义上,Vaadin 8 和 Vaadin 10+ 是完全相同的.例如,如果您想公开 REST 服务,除了您的 Vaadin UI 之外,只需将 REST API 公开到不同的 URL.例如.如果 root ( "/" ) 映射到 Vaadin,则从 "/api" 为它们提供服务.您可以使用两个单独的网络应用(war 文件)或通过将 Vaadin UI 和 API 映射到不同的地址来实现这一点.

In this sense, Vaadin 8 and Vaadin 10+ are completely the same. If you want to expose for example a REST service, in addition to your Vaadin UI, just expose the REST API to a different URL. E.g. serve them from "/api" if root ( "/" ) is mapped to Vaadin. You can do this either with two separate web apps (war files) or by mapping Vaadin UI and API just to different addresses.

下面是一个非常简单的 JAX-RS 应用程序,它可以很好地部署在 Vaadin 应用程序(也适用于 Vaadin 10+,使用 Wildfly 测试)旁边:

Below is a really simple JAX-RS app that deploys fine next to Vaadin app (also to Vaadin 10+, tested using Wildfly):

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Application;

@ApplicationPath("/api")
public class RestStuff extends Application {

    @Path("/")
    public static class HelloWorld {
        @GET
        @Produces("text/plain")
        public String getMessage() {
            return "Hello World";
        }
    }
}

这篇关于如何在 Vaadin 12 中创建 Web 服务?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆