728x90
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>com.graphql-java-kickstart</groupId>
<artifactId>graphql-webclient-spring-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>
WebClient 가 webflux에 포함되어 있습니다.
WebClient webClient = WebClient
.builder()
.baseUrl("https://apijosu.com/graphql")
.defaultHeader("Authorization", "Bearer user token")
.defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
.build();
WebClient로 get, post 요청 필요한 헤더를 넣고 url을 지정합니다.
GraphQLRequest request = GraphQLRequest.builder().query("query").build()
WebClient 에서 query를 지정해서 get은 queryparam, post는 body에 데이터를 넣고 전송할 수 있으나, graphql 쿼리문 문자열 인식이 에러가 납니다.
GraphQLRequest 를 사용해 request 를 만들어줍니다.
String block = webClient.post().bodyValue(request.getRequestBody()).retrieve().bodyToMono(String.class).block();
System.out.println(block);
해당 request 에 바디를 가져와서 post 요청합니다.
728x90
'Back-End > Spring(Boot)' 카테고리의 다른 글
WebClient 로 graphql 서버에 요청보내기 - mutation, variables (0) | 2023.02.15 |
---|---|
스프링 Oauth2 Server jdbc 이용한 토큰 Access 토큰 로그인 마다 새롭게 발급 받기 (커스텀) (0) | 2023.01.02 |
스프링 시큐리티 Oauth2 커스텀 Exception 만들기 (0) | 2022.12.28 |
Spring 페이징 처리 중 MyBatis 에러 (0) | 2021.07.27 |
@ControllerAdvice으로 @ExceptionHandler 전역 에러 핸들러 만들기 (0) | 2021.07.20 |