powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Feign GET -> POST
17 сообщений из 17, страница 1 из 1
Feign GET -> POST
    #40053552
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите почему 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
Feign GET -> POST
    #40053560
pavel_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
 loclalhost:8080


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

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

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


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

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



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

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


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

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

???


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

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

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
Feign GET -> POST
    #40053631
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
-=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
Feign GET -> POST
    #40053635
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=Koba=-,
Значит меньше магии и выкинуть клиент который за тебя делает запросы.
Извини, это уже бизнес логика. Её руками писать надо.
...
Рейтинг: 0 / 0
Feign GET -> POST
    #40053637
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ах да. Это жеж микросервисы))
...
Рейтинг: 0 / 0
Feign GET -> POST
    #40053642
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
-=Koba=-,
Значит меньше магии и выкинуть клиент который за тебя делает запросы.
Извини, это уже бизнес логика. Её руками писать надо.



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



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

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


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


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