【问题标题】:How to create REST compatible servlet?如何创建 REST 兼容的 servlet?
【发布时间】:2013-12-05 13:16:23
【问题描述】:

我想创建一个与 REST 兼容的 servlet。 我不想使用 jersey 库,我只需要一个简单的 servlet,它将使用 REST 接受请求,然后继续请求提取参数。然后我可以进一步从 servlet 调用我的服务器方法。

有没有什么,我可以用它来编写与 REST 兼容的 servlet 并通过 REST 兼容的 URL 进行客户端调用?

【问题讨论】:

  • 如果您害怕泽西岛,请尝试另一个库。那里有很多像rest4j这样的。在没有框架的情况下创建良好的 RESTful 服务既困难又浪费时间。
  • 试试RESTEasy。听起来很容易。如果您想与 GWT 进行更深入的集成(不一定值得),请尝试 RestyGWT

标签: java rest gwt servlets request


【解决方案1】:

REST 不是一种协议,它是一种架构风格。 HTTP 遵循 REST 原则,所以如果你“正确地使用 HTTP”,那么你就是在使用 REST。

Servlet 是一种很棒的(虽然是低级的)实现 Web API 的方法(我们不要称它们为 RESTful,大多数都不是;可能类似于 REST?)而且您不需要其他任何东西(JAX-RS 或 Spring MVC使事情变得更容易,但最终它们通常只是在 servlet 环境中运行)

使 API 成为“RESTful”(或“类 REST”)的原因更多的是您设计它的方式(对于使用它的人来说它看起来如何)而不是您如何实现它(代码除了你之外没有人看到)。

【讨论】:

    【解决方案2】:

    正如前人所说,REST 不是一种协议,只是一种处理 URL 请求的格式。

    如果您想快速获得一个简单的 REST Api,请查看 Spring Web MVC。 设置控制器就是这么简单:

    @Controller
    @RequestMapping("/myApi")
    public class MyController {
    
        @Inject
        MyService service;
    
        @RequestMapping(value = "/getProduct/{id}", method = RequestMethod.GET)
        public Product getProductById(@PathVariable("id") int id) {
            return service.getProductById(id);
        }
    
    }
    

    这只是一个例子。 可以在此处找到有关设置 Spring MVC 的完整教程: http://www.mkyong.com/spring-mvc/spring-mvc-hello-world-annotation-example/

    【讨论】:

      【解决方案3】:

      没有什么叫做 REST 协议,它要么称为基于 REST 的 API,要么称为基于 REST 的 Web 服务。早期与服务器的通信是通过基于 SOAP 的 Web 服务进行的,即请求和响应曾经是基于 XML 的。在当今世界,大多数服务器都在实现基于 REST 的 Web 服务。在这里,为请求发送 XML 主要是请求数据作为 URL 中的查询参数或在请求正文中传递,就像 POST 一样。

      因此,理想情况下,基于 REST 的 Web 服务也基于 HTTP/HTTPS 协议。

      要了解更多信息,请阅读以下链接
      http://rest.elkstein.org/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-21
        • 2016-04-01
        • 1970-01-01
        • 2017-09-17
        • 1970-01-01
        • 2014-02-20
        • 2018-10-06
        • 1970-01-01
        相关资源
        最近更新 更多