김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술을 보면서 공부한 내용입니다.
API란 Application Programming Interface의 약자로, 어떤 서버의 특정한 부분에 접속해서 그 안에 있는 데이터와 서비스를 이용할 수 있게 해주는 소프트웨어 도구이다.
→ 사람을 위한 인터페이스가 아닌 응용 프로그램을 위한 인터페이스로 프로그램들이 서로 상호작용 하는 것을 도와주는 매개체이다.
간단한 구현을 통해 어떤 방식으로 돌아가는지 확인해보자.
1) Controller에 다음과 같은 코드를 작성한다.
@GetMapping("hello-string")
@ResponseBody // Http통신 프로토콜 body부분에 데이터를 직접 넣어주겠다라는 의미
public String helloString(@RequestParam("name") String name){
return "hello " + name; // spring을 요청하면 문자가 바로 내려가 "hello spring"으로 view에 생성됨
// view가 필요없이 데이터가 그래도 송출됨
}
💡 @ResponseBody를 사용하면 view를 사용하지 않고, BODY에 문자 내용을 직접 반환한다
2) url에 ‘localhost:포트번호’ + ‘hello-string?name=값’을 작성하여 실행한다.
⇒ template에 html을 생성하지 않고 그대로 화면에 출력된 것을 확인할 수 있다.
문자가 아닌 객체를 반환하면 어떻게 될까?
⇒ 객체를 반환하면 객체가 JSON으로 변환된다.
1) Controller에 다음과 같은 코드를 작성한다.
@GetMapping("hello-api")
@ResponseBody
public Hello helloApi(@RequestParam("name") String name) {
Hello hello = new Hello();
hello.setName(name);
return hello; // Hello 객체를 넘김
}
static class Hello {
private String name;
// Property 접근 방식
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
💡 Getter와 Setter: 데이터를 보호하기 위해 사용한다. 외부에서 직접 접근하는 것을 막는다.
2) url에 ‘localhost:포트번호’ + ‘hello-api?name=값’을 작성하여 실행한다.
⇒ JSON값으로 변환되어 “키:값” 으로 변환된 것을 확인할 수 있다.