多个Java对象到单个端点

时间:2018-09-17 15:51:15

标签: java rest spring-boot

我不想让Spring Boot Rest Controller建立case语句,而是希望Spring使用正确的端点。我什至不确定这是否可行,但我希望宇宙能够拯救我。

  @PostMapping("/endpoint")
    public String one(Greeting greet) {
        return "Greeting Posted";

    }

    @PostMapping("/endpoint")
    public String two(Address addr) {
        return "Address Posted";

    }

当前错误

Caused by: java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'RController' method 
public java.lang.String com.example.controller.RController.two(com.example.model.Address)
to {[/endpoint],methods=[POST]}: There is already 'RController' bean method
public java.lang.String com.example.controller.RController.one(com.example.model.Greeting) mapped.

1 个答案:

答案 0 :(得分:1)

不可能模棱两可。

作为一种好的做法,如果2个资源将以不同的方式处理数据,则必须为每个资源创建不同的端点。

或者为您提供可能的解决方法,它创建一个ViewModel对象并仅用一种方法处理它。

public class GreetingAddressVM {

    private Address address;

    private Greeting greeting;

}

我希望为每个动作创建不同的映射。