Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Feign GET -> POST / 17 сообщений из 17, страница 1 из 1
15.03.2021, 13:19
    #40053552
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Feign GET -> POST
Подскажите почему Feign трансформирует GET запрос в POST?

Нашел похожие вопросы но они не помогли особо
https://stackoverflow.com/questions/63115610/how-to-pass-pageable-to-feign-client-in-post-request-with-additional-requestbod
https://stackoverflow.com/questions/56021307/spring-data-pageable-not-supported-as-requestparam-in-feign-client

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
@Configuration
@Import({
        SwaggerConfiguration.class,
})
@RequiredArgsConstructor
class ApplicationConfiguration {

    private final ObjectFactory<HttpMessageConverters> messageConverters;


    @Bean
    public Module pageJacksonModule() {
        return new PageJacksonModule();
    }


    @Bean
    public Module sortModule() {
        return new SortJacksonModule();
    }


    @Bean
    public Encoder feignEncoder() {
        return new PageableSpringEncoder(new SpringEncoder(messageConverters));
    }
}



@Slf4j
@RestController
@RequestMapping("/api/tasks")
@RequiredArgsConstructor
public class BaseUserTaskController {

    private final BaseUserTaskFeignClient baseUserTaskFeignClient;

    @GetMapping("/cases")
    public Page<BaseCaseOnUserTaskDto> getBaseCasesOnUserTask(BaseCaseOnUserTaskFilter filter, Pageable pageable) {
        return baseUserTaskFeignClient.getCasesAtTask(filter, pageable);
    }

}


@FeignClient(name = "BaseUserTaskService", url = "${feign.url}")
public interface BaseUserTaskFeignClient {


    @GetMapping("/api/tasks/cases")
    Page<BaseCaseOnUserTaskDto> getCasesAtTask(@RequestBody BaseCaseOnUserTaskFilter filter, @SpringQueryMap Pageable pageable);

}




В результате ошибка

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
{5 entries
    errorCode: "InternalServerError",
    description: "length: 426 chars
[500] during [GET] to [http://loclalhost:8080/api/tasks/cases?serialVersionUID=1232825578694716871&size=10&page=0] [BaseUserTaskFeignClient#getCasesAtTask(BaseCaseOnUserTaskFilter,Pageable)]: [{\"errorCode\":\"HttpRequestMethodNotSupportedError\",\"description\":\"Request method 'POST' not supported\",\"localizedMessage\":\"Внутренняя ошибка сервиса\",\"timestamp\":\"2021-03-15T13:10:48+03:00\",\"details\":null}]
",
    localizedMessage: "Внутренняя ошибка сервиса",
    timestamp: "2021-03-15T13:16:31+03:00",
    details: null
}
...
Рейтинг: 0 / 0
15.03.2021, 13:28
    #40053560
pavel_nv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Feign GET -> POST
Код: java
1.
 loclalhost:8080


что то тут не так...
...
Рейтинг: 0 / 0
15.03.2021, 13:29
    #40053562
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Feign GET -> POST
[500] during [GET]

у тебя InternalServerError (код 500) в бэкенде, причем тут POST?
...
Рейтинг: 0 / 0
15.03.2021, 13:30
    #40053563
Андрей Панфилов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Feign GET -> POST
-=Koba=-

Код: java
1.
2.
    @GetMapping("/api/tasks/cases")
    Page<BaseCaseOnUserTaskDto> getCasesAtTask(@RequestBody BaseCaseOnUserTaskFilter filter, @SpringQueryMap Pageable pageable);


...
Рейтинг: 0 / 0
15.03.2021, 13:54
    #40053584
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Feign GET -> POST
Андрей Панфилов
-=Koba=-

Код: java
1.
2.
    @GetMapping("/api/tasks/cases")
    Page<BaseCaseOnUserTaskDto> getCasesAtTask(@RequestBody BaseCaseOnUserTaskFilter filter, @SpringQueryMap Pageable pageable);



???
...
Рейтинг: 0 / 0
15.03.2021, 13:56
    #40053586
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Feign GET -> POST
chpasha
[500] during [GET]

у тебя InternalServerError (код 500) в бэкенде, причем тут POST?


Приложение принимает get
И отправляет на другой сервер

Там данный запрос отрабатывает корректно
...
Рейтинг: 0 / 0
15.03.2021, 14:18
    #40053605
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Feign GET -> POST
-=Koba=-,
Поставь логирование и покажи где там get/post
...
Рейтинг: 0 / 0
15.03.2021, 14:24
    #40053612
Андрей Панфилов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Feign GET -> POST
-=Koba=-
Андрей Панфилов
пропущено...

???


ну что непонятно? клиенту указано что у запроса есть тело, каким образом клиент должен это тело доставить до сервера?
...
Рейтинг: 0 / 0
15.03.2021, 14:33
    #40053616
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Feign GET -> POST
Вы правы

отправляю такой запрос

http://localhost:8081/cpt/api/tasks/cases?activityId=formCertificate,notifyDecision&caseTypeMnemonics=cpt_P001_compatriot_process&size=10&department=243357849010097935

Но почему-то уходит другой

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
 [BaseUserTaskFeignClient#getCasesAtTask] ---> GET http://172.24.14.103:30750/cpt/api/tasks/cases?serialVersionUID=1232825578694716871&size=10&page=0 HTTP/1.1
 [BaseUserTaskFeignClient#getCasesAtTask] Content-Length: 355
 [BaseUserTaskFeignClient#getCasesAtTask] Content-Type: application/json
 [BaseUserTaskFeignClient#getCasesAtTask] 
 [BaseUserTaskFeignClient#getCasesAtTask] {"caseModuleCode":null,"caseId":null,"caseTypeId":null,"caseTypeMnemonics":"cpt_P001_compatriot_process","caseTypeIds":null,"caseNumber":null,"caseOpenDateFrom":null,"caseOpenDateTo":null,"personEsflIds":null,"lastName":null,"firstName":null,"middleName":null,"birthDate":null,"activityId":"formCertificate,notifyDecision","department":243357849010097935}
 [BaseUserTaskFeignClient#getCasesAtTask] ---> END HTTP (355-byte body)
 [BaseUserTaskFeignClient#getCasesAtTask] <--- HTTP/1.1 500 (113ms)
 [BaseUserTaskFeignClient#getCasesAtTask] connection: close
 [BaseUserTaskFeignClient#getCasesAtTask] content-type: application/json
 [BaseUserTaskFeignClient#getCasesAtTask] date: Mon, 15 Mar 2021 11:30:58 GMT
 [BaseUserTaskFeignClient#getCasesAtTask] processid: a87c2bd8-9f5e-4bae-a414-561b3b0ef89c
 [BaseUserTaskFeignClient#getCasesAtTask] transfer-encoding: chunked
 [BaseUserTaskFeignClient#getCasesAtTask] 
 [BaseUserTaskFeignClient#getCasesAtTask] {"errorCode":"HttpRequestMethodNotSupportedError","description":"Request method 'POST' not supported","localizedMessage":"Внутренняя ошибка сервиса","timestamp":"2021-03-15T14:30:58+03:00","details":null}
 [BaseUserTaskFeignClient#getCasesAtTask] <--- END HTTP (227-byte body)
 [http-nio-8081-exec-1] ERROR 2edad6f3-14a4-4b4c-9e0d-eec2c5b55edb ru.atc.mvd.gismu.shared.exceptionhandler.GlobalControllerExceptionHandler - [500] during [GET] to [http://172.24.14.103:30750/cpt/api/tasks/cases?serialVersionUID=1232825578694716871&size=10&page=0] [BaseUserTaskFeignClient#getCasesAtTask(BaseCaseOnUserTaskFilter,Pageable)]: [{"errorCode":"HttpRequestMethodNotSupportedError","description":"Request method 'POST' not supported","localizedMessage":"Внутренняя ошибка сервиса","timestamp":"2021-03-15T14:30:58+03:00","details":null}]
feign.FeignException$InternalServerError: [500] during [GET] to [http://172.24.14.103:30750/cpt/api/tasks/cases?serialVersionUID=1232825578694716871&size=10&page=0] [BaseUserTaskFeignClient#getCasesAtTask(BaseCaseOnUserTaskFilter,Pageable)]: [{"errorCode":"HttpRequestMethodNotSupportedError","description":"Request method 'POST' not supported","localizedMessage":"Внутренняя ошибка сервиса","timestamp":"2021-03-15T14:30:58+03:00","details":null}]




А уходит

http://172.24.14.103:30750/cpt/api/tasks/cases?serialVersionUID=1232825578694716871&size=10&page=0
...
Рейтинг: 0 / 0
15.03.2021, 14:55
    #40053631
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Feign GET -> POST
Андрей Панфилов
-=Koba=-
пропущено...

???


ну что непонятно? клиенту указано что у запроса есть тело, каким образом клиент должен это тело доставить до сервера?


Я пробовал убирать данную аннотацию.... Но результат тот же



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
@FeignClient(name = "BaseUserTaskService", url = "${feign.url}")
public interface BaseUserTaskFeignClient {
    @GetMapping("/api/tasks/cases")
    Page<BaseCaseOnUserTaskDto> getCasesAtTask(BaseCaseOnUserTaskFilter filter, @SpringQueryMap Pageable pageable);

}



[BaseUserTaskFeignClient#getCasesAtTask] ---> GET http://172.24.14.103:30750/cpt/api/tasks/cases?serialVersionUID=1232825578694716871&size=10&page=0 HTTP/1.1
[BaseUserTaskFeignClient#getCasesAtTask] Content-Length: 355
[BaseUserTaskFeignClient#getCasesAtTask] Content-Type: application/json
[BaseUserTaskFeignClient#getCasesAtTask] 
[BaseUserTaskFeignClient#getCasesAtTask] {"caseModuleCode":null,"caseId":null,"caseTypeId":null,"caseTypeMnemonics":"cpt_P001_compatriot_process","caseTypeIds":null,"caseNumber":null,"caseOpenDateFrom":null,"caseOpenDateTo":null,"personEsflIds":null,"lastName":null,"firstName":null,"middleName":null,"birthDate":null,"activityId":"formCertificate,notifyDecision","department":243357849010097935}
[BaseUserTaskFeignClient#getCasesAtTask] ---> END HTTP (355-byte body)
[BaseUserTaskFeignClient#getCasesAtTask] <--- HTTP/1.1 500 (103ms)
[BaseUserTaskFeignClient#getCasesAtTask] connection: close
[BaseUserTaskFeignClient#getCasesAtTask] content-type: application/json
[BaseUserTaskFeignClient#getCasesAtTask] date: Mon, 15 Mar 2021 11:55:54 GMT
[BaseUserTaskFeignClient#getCasesAtTask] processid: 073f95be-9e98-43dc-8215-148349bf1de2
[BaseUserTaskFeignClient#getCasesAtTask] transfer-encoding: chunked
[BaseUserTaskFeignClient#getCasesAtTask] 
[BaseUserTaskFeignClient#getCasesAtTask] {"errorCode":"HttpRequestMethodNotSupportedError","description":"Request method 'POST' not supported","localizedMessage":"Внутренняя ошибка сервиса","timestamp":"2021-03-15T14:55:54+03:00","details":null}
[BaseUserTaskFeignClient#getCasesAtTask] <--- END HTTP (227-byte body)
 - [500] during [GET] to [http://172.24.14.103:30750/cpt/api/tasks/cases?serialVersionUID=1232825578694716871&size=10&page=0] [BaseUserTaskFeignClient#getCasesAtTask(BaseCaseOnUserTaskFilter,Pageable)]: [{"errorCode":"HttpRequestMethodNotSupportedError","description":"Request method 'POST' not supported","localizedMessage":"Внутренняя ошибка сервиса","timestamp":"2021-03-15T14:55:54+03:00","details":null}]
feign.FeignException$InternalServerError: [500] during [GET] to [http://172.24.14.103:30750/cpt/api/tasks/cases?serialVersionUID=1232825578694716871&size=10&page=0] [BaseUserTaskFeignClient#getCasesAtTask(BaseCaseOnUserTaskFilter,Pageable)]: [{"errorCode":"HttpRequestMethodNotSupportedError","description":"Request method 'POST' not supported","localizedMessage":"Внутренняя ошибка сервиса","timestamp":"2021-03-15T14:55:54+03:00","details":null}]
...
Рейтинг: 0 / 0
15.03.2021, 14:57
    #40053635
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Feign GET -> POST
-=Koba=-,
Значит меньше магии и выкинуть клиент который за тебя делает запросы.
Извини, это уже бизнес логика. Её руками писать надо.
...
Рейтинг: 0 / 0
15.03.2021, 14:58
    #40053637
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Feign GET -> POST
Ах да. Это жеж микросервисы))
...
Рейтинг: 0 / 0
15.03.2021, 15:04
    #40053642
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Feign GET -> POST
PetroNotC Sharp
-=Koba=-,
Значит меньше магии и выкинуть клиент который за тебя делает запросы.
Извини, это уже бизнес логика. Её руками писать надо.



Если правильно понял руками редирект делать?
...
Рейтинг: 0 / 0
15.03.2021, 15:18
    #40053652
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Feign GET -> POST
-=Koba=-
PetroNotC Sharp
-=Koba=-,
Значит меньше магии и выкинуть клиент который за тебя делает запросы.
Извини, это уже бизнес логика. Её руками писать надо.



Если правильно понял руками редирект делать?
задачу опиши.
Во первых, нельзя делить мелко на сервисы.
...
Рейтинг: 0 / 0
15.03.2021, 15:19
    #40053653
Андрей Панфилов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Feign GET -> POST
-=Koba=-
Я пробовал убирать данную аннотацию.... Но результат тот же
так а документацию почитать? https://cloud.spring.io/spring-cloud-openfeign/reference/html/#feign-querymap-support
...
Рейтинг: 0 / 0
15.03.2021, 15:20
    #40053656
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Feign GET -> POST
-=Koba=-,

3класса по 10 методов могут взаимодействовать в пол лимона вариантов.
Поэтому нельзя тупо сделать 3 микросервис по классу.
...
Рейтинг: 0 / 0
15.03.2021, 16:10
    #40053685
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Feign GET -> POST
Андрей Панфилов
-=Koba=-
Я пробовал убирать данную аннотацию.... Но результат тот же
так а документацию почитать? https://cloud.spring.io/spring-cloud-openfeign/reference/html/#feign-querymap-support


Помогло =))) Спасибо
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Feign GET -> POST / 17 сообщений из 17, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]