server to server

jjimgo·2021년 7월 13일
0

Spring

목록 보기
14/17
post-thumbnail

https://github.com/HoJin-jjimgo/Spring

일단 많은 내용은 코드를 확인해 보아햐 한다.

이전 까지는 Server의 입장에서 API를 제공하는 방법에 대해서 학습을 하였지만 이후의 과정은 서버를 두개 만들어 서로 교류하는 과정을 배우게 되었다.

코딩을 보면 어떤 말인지 이해를 할수가 있다.

어떠한 json형태의 데이터를 줄떄에는
주고자 하는 데이터를 담을 class를 만들고
get인경우에는 getForEntity
put인경우에는 putForEntity
post인경우에는 postForEntity 등을 사용하여 주고받으면 된다.

get은 주소만 호출하면 되니 문제가 되지 않지만
post같은 경우에는 RequesyBody가 필요하다.

UserRequest, UserResponse는 단순히 입력한 값과 그에따른 호출값을 보기 위함이다.
UserRequest에 입력한 값이 uri를 타고 server에 전송이 되고 그것을 UserResponse는 에 담게 된다.
이후 다시 ResponseEntity에 담아서 return함으로써 body에 값이 입력이 되는것이다.

@RequestParam을 사용할 경우

URI uri의 주소 값이 실질적인 변수의 값이 된다.
-> 그러기 떄문에 client에서는 server입장에서 구현한 모든 변수? 들에 대한 값을 전송해 주어야 한다.

@RequestBody를 사용할 경우

URI uri 변수의 경우에는 단순하게 주소의 이름만을 설정해 줄수가 있다.
실질적으로 body에 출력이 되는 값은 UserRequest 에 저장을 한다.

RestTemplate

http통신에 유용하게 쓸 수 있는 템플릿
-> REST API 호출이후 응답을 받을 떄까지 기다리는 동기 방식

코드를 재사용할떄에 제네릭을 주로 사용한다.
exchange는 client에서 server로 header를 보낼떄에 사용한다.
(이정도만 이해했음, 인터페이스 이름이나 코드의 짜임새는 아직 좀 어려움)

===== 어려운점 ======

기본적인 내용은 어려운 부분이 많이 없었지만(몇번 수정해가면서 해보면 감이 왔다.)

하지만 유동성이 있는 JSON형식의 응답및 호출을 코딩으로 만들떄는 매우 어려웠다..
-> 특히 제네릭을 사용하면서 하는 부분은 무슨 소리인지를 거의 이해가 안되기 떄문에 내일 다시 들어볼 예정이다.

profile
[기술 블로그가 아닌 하루하루 기록용 블로그]

0개의 댓글