クライアントの get リクエストを装う、サーバーがメソッドをスローする 許可されていない: リクエスト メソッド 'POST' はサポートされていません

feign が呼び出されると、クライアントはリクエストを取得し、サーバーはそれを get リクエストとして受け入れますが、実行リクエストはエラーを報告します。メソッドが許可されていません
: リクエスト メソッド 'POST' はサポートされていません。
ここに画像の説明を挿入

1. 偽のクライアント

@GetMapping(“/list”)
Result<?> queryPageList(SystemAccountBookDetail systemAccountBookDetail,
@RequestParam(name = “pageNo”,defaultValue = “1”) Integer pageNo,
@RequestParam(name = “pageSize”,defaultValue = “10”)整数 pageSize) {

return sysAccountBookDetailService.queryPageList(systemAccountBookDetail,pageNo,pageSize);

}

2. 偽サーバー

@Component
@FeignClient(value = FeignConstant.OCP_CLOUD_SYSTEM, fallbackFactory = AccountAPIFallbackFactory.class)
public interface AccountApi {
    
    

    @GetMapping(value = "/account/accountBookDetail/list")
    Result<?> accountBookDetailPageList(@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                        @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
                                        SystemAccountBookDetail systemAccountBookDetail);

}

理由: SystemAccountBookDetail オブジェクトが使用されているため、擬似呼び出しでは get/post リクエストであるかどうかを識別できないため、強制的に post リクエストとなり、エラーが発生します。 Method Not allowed: Request method 'POST'サーバー側ではサポートされていません

解決策: これを解決するには、偽サーバー API に @SpringQueryMap アノテーションを追加します。アノテーションの機能は、エンティティをフォーム データに変換することです。

次のように:

@Component
@FeignClient(value = FeignConstant.OCP_CLOUD_SYSTEM, fallbackFactory = AccountAPIFallbackFactory.class)
public interface AccountApi {
    
    

    @GetMapping(value = "/account/accountBookDetail/list")
    Result<?> accountBookDetailPageList(@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                        @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
                                        SystemAccountBookDetail systemAccountBookDetail);

}

おすすめ

転載: blog.csdn.net/weixin_43866043/article/details/129266599