【问题标题】:Is there an equivalent to ASP.NET WEB API in JAVA world?在 JAVA 世界中是否有等效于 ASP.NET WEB API 的东西?
【发布时间】:2014-05-28 06:10:33
【问题描述】:

我从事 .NET Web 开发人员已有好几年了,使用过 asp.net Web 表单和 c#、wcf 等。但最近开发了支持触摸的面向客户的应用程序。 其与设备无关的应用程序专为能够运行 HTML5 应用程序(iOS、Android、Windows8)的任何平台、移动设备(例如平板电脑)而设计, 辅助或无辅助信息亭、笔记本电脑或台式电脑。

我们使用 asp.net webapi、ASP.net MVC 4.0 框架、Jquery 移动库、HTML 5、signal R 进行开发。

我们是否可以在 Java 下迁移或转换完整的服务器端代码(即控制器方法)?

除了 GET 和 POST 之外,Apache Tomcat 服务器或 (webspehere) 是否支持 PUT、DELETE 等动词?

Java 世界中是否有任何与 ASP.NET SignalR 功能等效的东西?

在 Java 中开发支持设备无关触摸的应用程序需要哪些软件或库?

我认为 Web API 在以下几个关键领域客观上胜过其他 API。

内容协商, 灵活性, 关注点分离

Spring MVC API 或 Jersey API 将在多大程度上支持上述领域?

【问题讨论】:

    标签: java asp.net


    【解决方案1】:

    答案是肯定的,您可以使用 Spring 框架在 Java 中创建 Restful Web 服务。这是代码外观的示例

    import java.util.concurrent.atomic.AtomicLong;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class GreetingController {
    
    private static final String template = "Hello, %s!";
    private final AtomicLong counter = new AtomicLong();
    
    @RequestMapping("/greeting")
    public Greeting greeting(@RequestParam(value="name", defaultValue="World") String name) {
        return new Greeting(counter.incrementAndGet(),
                            String.format(template, name));
    }
    

    }

    链接:http://spring.io/guides/gs/rest-service/

    【讨论】:

      【解决方案2】:

      Jersey (jax-rs) 是 Java 世界中 ASP.NET Web API 的一个非常可靠的替代品。

      Jersey RESTful Web Services 框架是开源的,生产 质量,用 Java 开发 RESTful Web 服务的框架...

      这是一种基于注释的方法来解决问题。我认为这是一个经过深思熟虑和富有成效的环境。您可以自定义各种包含合理默认值的内容。

      【讨论】:

        【解决方案3】:

        我们是否可以迁移或转换完整的服务器端 Java下的代码(即控制器方法)?

        可以,但不是很容易,因为没有直接映射 api,但有类似的 api 可以使用。很多人都做过

        Apache tomcat 服务器或 (webspehere) 是否支持 PUT 等动词, 除了 GET 和 POST 之外还有 DELETE?

        是的,所有 HTTP 命令都可以在 Tomcat 或任何符合 JEE 的应用服务器中启用/禁用

        Java 世界中任何与 ASP.NET SignalR 等效的东西 功能?

        DWR(直接 Web 远程处理)、Vaadin、GWT 等。但我相信还有更多。

        开发设备需要哪些软件或库 Java 中支持触控的应用程序?

        JavaMe、Android、GWT-Touch。这个link 也可能对您有所帮助。

        Java REST API

        1. Apache CXF,一种开源 Web 服务框架。
        2. Jersey,来自 Sun(现为 Oracle)的参考实现。
        3. RESTeasy,JBoss 的实现。
        4. Apache Wink,Apache Software Foundation Incubator 项目,服务器模块实现 JAX-RS。
        5. 阿帕奇托斯卡纳 (http://tuscany.apache.org/documentation-2x/sca-java-bindingrest.html)

        希望这会有所帮助。

        【讨论】:

        • 能否请您给出类似于 ASP.NET Web api 的 API 名称,用于通过 JAVA 中的 http 服务开发 REST 应用程序?
        • 感谢 Avigen。是否有任何转换或迁移工具可用于将控制器和其他 .net 代码转换为 Java?
        • 这可能回答了你的问题。没有,即使这样我也不会使用,因为您可能仍然需要手动验证每一行代码。 stackoverflow.com/questions/78811/…
        • 谢谢。能否请您给出类似于 ASP.NET Web api 的 API 名称,用于通过 JAVA 中的 http 服务开发 REST 应用程序?
        • 抱歉我没看到。感谢 Avigen
        猜你喜欢
        • 2012-04-08
        • 2010-09-24
        • 2010-10-22
        • 1970-01-01
        • 2011-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-09
        相关资源
        最近更新 更多