API를 사용해보도록하자. 내가 얻을수 없는 데이터에 대한
정보에 대해서 도움을 받을 때 간혹 우리는 API 데이터가 필요하다
그것을 쉽게 사용할 수 있도록 도와주는 것이 바로 포스트맨이다.
이를 REST 라고 부르기도 한다.
MemberList 뽑아보기
우선, Postman에서 해당링크로 send를 하엿을 경우 다음과 같은
데이터가 나오는것을 볼 수 가 있다.
// 포스트맨 test
@RequestMapping(value = "/test/memberViewer")
public String memberViewer(Model model) throws Exception {
// api 호출해서 값을 가져온다
String apiUrl = "http://localhost:8080/rest/member";
URL url = new URL(apiUrl);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("GET");
// model 객체를 이용하여 jsp로 데이터를 넘겨준다.
BufferedReader bufferedReader;
if(httpURLConnection.getResponseCode() >= 200 && httpURLConnection.getResponseCode() <= 300) {
bufferedReader =new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));
} else {
bufferedReader = new BufferedReader(new InputStreamReader(httpURLConnection.getErrorStream()));
}
StringBuilder stringBuilder = new StringBuilder();
String line;
while((line = bufferedReader.readLine()) != null ) {
System.out.println("line: " + line);
stringBuilder.append(line);
}
bufferedReader.close();
httpURLConnection.disconnect();
ObjectMapper objectMapper = new ObjectMapper();
List<Member> memberList = objectMapper.readValue(stringBuilder.toString(), new TypeReference<List<Member>>() {});
model.addAttribute("list", memberList);
return "test/memberViewer";
}
다음 처럼 작성을 하고,
서버를 키고, 해당 URL을 입력하게되면
다음과 같은 내가 갖고있는 데이터를 토대로
데이터가 그대로 출력이 되게된다.
selectOne도 마찬가지로
다음과 같이 작성하면
2번에 해당한 시퀀스 데이터를 불러오게된다.
// 포스트맨 test
@RequestMapping(value = "/test/memberViews")
public String memberViews(Model model) throws Exception {
// api 호출해서 값을 가져온다
String apiUrl = "http://localhost:8080/rest/member/2";
URL url = new URL(apiUrl);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("GET");
// model 객체를 이용하여 jsp로 데이터를 넘겨준다.
BufferedReader bufferedReader;
if(httpURLConnection.getResponseCode() >= 200 && httpURLConnection.getResponseCode() <= 300) {
bufferedReader =new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));
} else {
bufferedReader = new BufferedReader(new InputStreamReader(httpURLConnection.getErrorStream()));
}
StringBuilder stringBuilder = new StringBuilder();
String line;
while((line = bufferedReader.readLine()) != null ) {
System.out.println("line: " + line);
stringBuilder.append(line);
}
bufferedReader.close();
httpURLConnection.disconnect();
System.out.println("final line" + stringBuilder.append(line));
ObjectMapper objectMapper = new ObjectMapper();
Member member = objectMapper.readValue(stringBuilder.toString(), Member.class);
model.addAttribute("item", member);
return "test/memberViews";
}
가장 신경써서 봐야할 부분은
이부분이다.
다음과같이 주소를 입력 햇을경우,
화면이 뜨지만,
로그를 보면 해당 데이터가 나오는 것을 확인 해 볼 수 있다.
To be continue..
'API' 카테고리의 다른 글
[API] Daum 우편번호 API 사용 및 적용 (0) | 2022.06.15 |
---|