使用REST

时间:2015-10-19 15:48:42

标签: java rest integration

我正在设计一个将部署到Wildfly或Tomcat的Java Web应用程序(尚未决定)。

基本上它是关于需要REST接口进行通信(接受JSON数据)的脱机java应用程序。我们的想法是应用程序始终运行并处理存储在redis缓存中的请求(存储收到的JSON数据)。

我过去曾使用Spring MVC框架作为网站,但我不需要REST接口的MVC模式。

有没有一种方法可以指出我使用Spring框架(或其他一些Java框架)来添加接收现有离线应用程序的POST请求的功能?或者,最好只编写将使用与现有应用程序相同的缓存的REST服务?

为了说明我的问题,我附上了我正在寻找的架构的简化图:

Existing application and the extension

4 个答案:

答案 0 :(得分:2)

一旦您谈到接收 POST请求,您就会自动引用HTTP服务器。

问题在于该服务器是作为服务运行还是按需运行。

  

有没有一种方法可以指出我使用Spring框架(或其他一些Java框架)来添加接收现有离线应用程序的POST请求的功能?

不是没有引入某种HTTP容器,没有。

  

或者,编写将使用与现有应用程序相同的缓存的REST服务会更好吗?

是的,确切地说。正如另一个提到的,个人而言,我坚持使用Spring MVC。但泽西岛也应该为你的用例做好准备。

答案 1 :(得分:1)

我认为你应该使用任何轻型ESB,如Camel,Mule或Spring Integration。如果您已经使用过Spring,那么后者对您来说将是最简单的。

此类应用程序的目的是促进与任何事物进行通信的任务(在这种情况下,与您的离线应用程序的HTTP端点)。

看看这个:

https://www.google.ie/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=spring%20integration%20http-inbound

答案 2 :(得分:1)

你可以使用Spring MVC。

M odel是您的域类,在这种情况下 V iew是JSON, C 控制器处理要执行的请求逻辑运算,照常营业。

您还可以利用Spring的@RestController注释快速创建端点,就像在这个java示例中一样:

@RestController
public class MovieController {

    @Autowired
    private MovieRepository movieRepository;

    @RequestMapping(value = "/movies/{search}", method = RequestMethod.GET)
    public List<Movie> findMovies(@PathVariable String search) {
        return movieRepository.findByName(search);
    }

    @RequestMapping(value = "/movies", method = RequestMethod.POST)
    public void postMovie(@RequestBody Movie movie) {
        movieRepository.save(movie);
    }

}

答案 3 :(得分:0)

来自Andres,ESala和kervin的回答指出了我正确的方向,但我发现最合适的解决方案是:

  • 使用 Spring MVC
  • 实施REST服务
  • 将主要流程从现有应用程序转换为 Spring计划任务