【问题标题】:How to develop a REST Webservice method which accepts multiple URI如何开发一个接受多个 URI 的 REST Web 服务方法
【发布时间】:2018-10-04 12:50:51
【问题描述】:

例如如何开发一个接受多个 URI 的 REST Web 服务方法

如果我们有方法

@RequestMapping(/add)
 public Response add(@RequestParam List elements){
  }

上面的方法服务于 URL https://localhost:8080/add

  1. 我在采访中问过我们如何拥有一个服务于多个 URI 的单一 Web 服务,但我无法回答,因为我认为我们应该为每个方法都有唯一的 URI

  2. 对此的跟进,我们如何有一个方法返回从邮递员客户端选择的任何格式(JSON、XML、纯文本)。

【问题讨论】:

标签: java rest


【解决方案1】:

修改 URI:

@RequestMapping(value = "/", produces = {
            MediaType.APPLICATION_JSON_VALUE,
            MediaType.APPLICATION_XML_VALUE
            })
public Response add(@RequestParam List elements){

}

【讨论】:

  • 是否需要将所有的媒体类型一一添加。难道我们只有一个选项,比如 MediaType.ALL 或 MediaType.Any
  • 对于所有类型,删除“produces”。我以为你需要它
  • 所以如果我删除了产品,那么它会接受来自邮递员客户端的任何 Mediatype
  • 不一定。您可以使用consumes 来定义您要接受的数据类型
  • 不,我想接受任何类型的数据。我应该使用生产还是消费
【解决方案2】:

对于第一个问题,有很多方法可以做到这一点 Spring restTemplate 可以让您以另一种方法调用休息服务,因此您所要做的就是在请求另一个 uri 时调用您的休息服务 您还可以使用代理(Web 服务器代理)将相同的 Web 服务映射到多个 URI

对于第二个,您需要将格式作为参数传递并在执行时调用与格式关联的特定服务

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2013-01-29
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多