1

我需要为我的 Spring 3 Web 应用程序之一编写 Java API。我应该能够通过这些 API 执行我使用 Web UI 执行的所有操作。我有用@RequestMapping 装饰的控制器方法。我最近听说,这些方法可以公开为 Restful 服务,可以通过 REST 客户端访问,只需极少的修改。我只是想知道为 spring3 服务创建 Rest 客户端的推荐方法。我不想在这些 java API 中使用任何 spring 依赖项。我应该能够使用这些 API 上传文件,因为我在我的 spring 应用程序中实现了 multipart/form-data。有人可以帮我选择在 java 中为 Spring 应用程序开发 RestClients 的最佳方法吗?

我有以下 HTTP 实现:

Java - 使用 JVM 提供的 HTTP 实现。与 HttpClient 实现相比,这有一些限制。

HTTPClient3.1 - 使用 Apache Commons HttpClient 3.1。

HTTPClient4 - 使用 Apache HttpComponents HttpClient 4.x。

请让我知道你的建议。

4

1 回答 1

1

就个人而言,我使用 org.springframework.web.client.RestClient,因为您已经在使用 Spring。他们在管理你需要的东西方面做得很好,只要记住他们的例外,没有内容处理很糟糕。我必须做的唯一修改是覆盖它们doExecute(URI, HttpMethod, RequestCallback, ResponseExtractor<T>)并添加:

if (response.getStatusCode().equals(HttpStatus.NO_CONTENT)) {
    return null;
}

if (!getErrorHandler().hasError(response)) { ...

除了那个小怪癖(和一些自定义异常处理)之外,它还是一个很棒的工具。

于 2012-06-07T10:35:50.687 回答