【问题标题】:Have all endpoints in same path and declared ending path inside header使所有端点都在同一路径中,并在标头内声明结束路径
【发布时间】:2017-03-15 15:46:00
【问题描述】:

我有一个适用于所有应用程序的端点,例如 https://localhost:8080/test,并且在标题内部我有参数和 URL 的其余部分。你知道如何在 java/spring proyect 中完成这项工作吗?

【问题讨论】:

    标签: java spring endpoint


    【解决方案1】:

    您可以使用 @RequestMappingheaders 参数将您的请求映射到特定标头。

    @RestController
    @RequestMapping(path = "/test")
    public class TestController {
    
        @RequestMapping(headers = "X-TEST=1")
        public void path1() {
            // Called when header "X-TEST" present and with 1
        }
    
        @RequestMapping(headers = "X-TEST=2")
        public void path2() {
            // Called when header "X-TEST" present and with 2
        }
    
        // ...
    }
    

    【讨论】:

    • 但是如果在标题中有多个参数并且我想只过滤一个?就像我有一个用于 oAuthToken 的参数,另一个是过滤器以在 TestController 中调用不同的方法
    • 即使有多个标题,它仍然可以工作。上面的方法会将您的请求映射到“X-TEST”标头,即使标头比这个还多。您还可以在 headers = {"X-TEST=1", "oAuthToken"} 等数组中指定多个标头。
    猜你喜欢
    • 2022-01-11
    • 1970-01-01
    • 2019-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多