我有一个带有 spring 后端的 Vue.js 应用程序,它通过 Feign 客户端调用“订单”微服务。我有许多使用 @PathVariable(s) 工作正常的 GET 请求,但我有 1 个 GET 请求,它可以传递任意数量的不同 URL 参数,并定义了一个 OrderListItemParameters 类并将其添加到 GET 请求中,将参数传递给微服务。我可以看到请求正在发送到微服务,但它被拒绝,并出现“org.zalando.problem.spring.common.AdviceTrait:方法不允许:请求方法'POST'不支持”错误。
我已确保假客户端发送的 OrderListItemParameters 与微服务预期的 OrderListItemParameters 相匹配。无论是 Feign 客户端还是微服务中都没有提及 POST。我只有 GET 和 PUT 端点。
前端代码的 Java 后端:
@RestController
@RequestMapping("/api")
public class OrdersResource {
## THIS WORKS NO PROBLEM
@GetMapping("/order/{orderId}")
public @ResponseBody
ResponseEntity<?> order(@PathVariable int orderId) throws Exception {
return ResponseEntity.ok(orderClient.order(orderId));
}
## THIS ENDPOINT IS THE ONE THAT FAILS
@GetMapping("/order/list")
public @ResponseBody
ResponseEntity<?> orders(OrderListItemParameters orderListItemParams) {
return ResponseEntity
.ok(orderClient.getOrderList(orderListItemParams));
}
} …Run Code Online (Sandbox Code Playgroud)