多个Java对象到单个端点

问题描述 投票:0回答:1

我想让Spring使用正确的端点,而不是为我的Spring Boot Rest Controller构建case语句。我甚至不确定这是可能的,但我希望宇宙可以拯救我。

  @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.
java rest spring-boot
1个回答
1
投票

这是不可能的。这是模棱两可的。

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

或者可能的解决方法,它创建一个ViewModel对象并在一个方法中处理它。

public class GreetingAddressVM {

    private Address address;

    private Greeting greeting;

}

我更喜欢为每个动作创建不同的映射。

© www.soinside.com 2019 - 2024. All rights reserved.