【问题标题】:Easiest frameworks to implement Java REST web services in 2014 [closed]2014 年实现 Java REST Web 服务的最简单框架 [关闭]
【发布时间】:2014-09-16 23:40:15
【问题描述】:

JVM 平台上的许多框架都变得很大,在我看来有点混乱。我参与的一些 J2EE 项目的配置文件几乎与源代码文件一样多。当然,有人可能会说这始终取决于开发人员,但我更喜欢具有清晰结构甚至一些边界的框架和工具,以确保每个人都使用相同的样式和架构

在 Java 中实现服务器 REST + 网站框架的最佳框架是什么?我一直在努力寻找一个易于使用的解决方案。

Jersey 和 Restlet 似乎是不错的选择,但我阅读了旧线程,在学习 Restlet 之前,是否愿意确保没有重要的新工具?

我想创建一个简单的 REST API(适用于 android)和网站

2017-01-26 更新: 两年后,我可以自信地承认 Spring Boot 正是我所寻找的

Spring Boot 旨在让创建 Spring 驱动的生产级应用程序和服务变得轻松,并且不费吹灰之力。它对 Spring 平台采取固执己见的观点,以便新用户和现有用户可以快速获得他们需要的内容。您可以使用它来创建可以使用“java -jar”或更传统的 WAR 部署启动的独立 Java 应用程序。我们还提供了一个运行“spring 脚本”的命令行工具。

下图将 Spring Boot 显示为对更大的 Spring 生态系统的关注点。它为用户提供了一个很小的表面积,可以接近并从 Spring 的其余部分中提取价值:

上下文中的 Spring Boot

Spring Boot 的主要目标是:

  • 为所有 Spring 开发提供从根本上更快且可广泛使用的“入门”体验

  • 开箱即用,但随着需求开始偏离默认设置,请迅速摆脱困境

  • 提供一系列大型项目通用的非功能性特性(例如嵌入式服务器、安全性、指标、健康检查、外部化配置)

Spring Boot 不生成代码,绝对不需要 XML 配置。

【问题讨论】:

    标签: java web-services rest jersey restlet


    【解决方案1】:

    玩!框架是另一种选择。

    如果应用程序遵循主要的 REST 设计原则,则 应用程序是 RESTful。 Play 框架使构建变得容易 RESTful 应用程序:

    Play 路由器解释 URI 和 HTTP 方法来路由 请求 Java 调用。基于正则表达式的 URI 模式给出 你更灵活。该协议是无状态的。这意味着你 无法在两个连续请求之间在服务器上保存任何状态。 Play 将 HTTP 视为一项关键功能,因此该框架为您提供 完全访问 HTTP 信息。

    http://www.playframework.com/documentation/1.2/routes

    相关: RESTful on Play! framework

    示例(来自https://www.openshift.com/blogs/day-30-play-framework-a-java-developer-dream-framework

    public class StoryController {
    
        public static Result allStories(){
            List<Story> stories = new Model.Finder<String , Story>(String.class, Story.class).all();
            return Results.ok(Json.toJson(stories));
        }
    
        public static Result getStory(String storyId){
            Story story = new Model.Finder<String, Story>(String.class, Story.class).byId(storyId);
            if(story == null){
                return Results.notFound("No story found with storyId " + storyId);
            }
            return Results.ok(Json.toJson(story));
        }
    }
    

    【讨论】:

    • 投票支持等反馈对更多用户有帮助,所以这样做:)
    【解决方案2】:

    使用Spring-MVC框架,下面是sn-p:

    Spring MVC 代码

    @Controller
    public class SpringMVCRestController {
    
        @RequestMapping(value = "/yourUrl.do", method = RequestMethod.GET)
        public Object processUser(HttpServletRequest request, HttpServletResponse response) {
                //Your implementation
        }
    }
    

    从客户端只需使用 HttpURLConnection/HttpsURLConnection http://www.yourdomain.com/yourUrl.do?user=user3871754 调用 URL

    另一个优点是 Spring-MVC 是最流行的框架,你会得到很多关于它的教程、博客、在线帮助。

    【讨论】:

    • Spring 有一个专用的@RestController 注释,带有额外的行为。
    • 安德烈亚斯,谢谢你的分享,+1。
    • 谢谢,但也许有一些新的解决方案(框架)?
    • Spring MVC 是一个框架。
    • 成立于2003年,问一下2012-2014年惊人的革命性新框架
    猜你喜欢
    • 2010-12-02
    • 2011-01-30
    • 2011-01-04
    • 2010-10-17
    • 1970-01-01
    • 2010-10-19
    • 1970-01-01
    • 2015-09-26
    • 2011-07-12
    相关资源
    最近更新 更多