API란?
'Application Programming Interface'의 약자로, 애플리케이션에서 제공하는 인터페이스를 의미한다.
Get API
Get API는 웹 애플리케이션 서버에서 값을 가져올 때 사용하는 API이다. 하단의 코드는 @GetMapping을 사용하며 매개변수를 받을 때 자주 쓰이는 방법 중 하나인 URL 자체에 값을 담아 요청을 처리하는 방법이다.
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/v1/get-api")
public class GetController {
@GetMapping(value = "/request1/{variable}")
public String hello(@PathVariable String variable){
return variable;
}
}
해당 request1에 variable의 값을 uri에 입력하면 그 입력받은 값을 그대로 출력해주는 코드이다.
POST API
POST API는 웹 애플리케이션을 통해 데이터베이스 등의 저장소에 리소스를 저장할 때 사용되는 API이다.
GET API에서는 경로에 변수를 넣어 요청을 보냈지만 POST API는 HTTP 바디에 담에 서버에 전달한다.
import com.example.ttest.dto.MemberDto;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.lang.reflect.Member;
import java.util.Map;
@RestController
@RequestMapping("/api/v1/post-api")
public class PostController {
@PostMapping(value = "/member")
public String postMember(@RequestBody Map<String, Object> postData) {
StringBuilder sb = new StringBuilder();
postData.entrySet().forEach(map -> {
sb.append(map.getKey() + " : " + map.getValue() + "\n");
});
return sb.toString();
}
}
위 코드는 @RequestBody를 사용하여 요청받은 파라미터들을 모아서 처리하는 코드이다.

요청을 받으면 아래의 body처럼 JSON형식으로 전송받은 사실을 알 수 있다.
PUT API
PUT API는 웹 애플리케이션 서버를 통해 데이터베이스 같은 저장소에 존재하는 리소스 값을 업데이트하는 데 사용한다.
POST API와의 차이점이라면 POST API는 새로운 데이터를 만들어내는 개념이고, PUT API는 기존의 데이터를 수정한다고 생각하면 된다.
@RestController
@RequestMapping("/api/v1/put-api")
public class PutController {
@PutMapping(value = "/member")
public String postMember(@RequestBody Map<String, Object> putData){
StringBuilder sb = new StringBuilder();
putData.entrySet().forEach(map->{
sb.append(map.getKey() + " :"+ map.getValue() + "\n");
});
return sb.toString();
}
}

POST API와 거의 비슷하다.
'백엔드' 카테고리의 다른 글
| Spring @RequestBody, @RequestHeader (0) | 2023.03.27 |
|---|---|
| JPA란? (0) | 2023.03.08 |
| RESTful API란 (0) | 2023.02.05 |
| JSON(JavaScript Object Notation)이란? (1) | 2023.02.05 |