Rest API 대충 알아보자

오늘의 찍먹

  • Http 요청들 보기
  • Rest API 의미 대충알기
  • Get / Post / Put / Delete 요청 만들기
  • Postman 간단히 사용해보기
  • Path Variable , Query Parameter 사용하기
  • Query Parameter 여러개 보내기

Http 요청들 보기

HTTP 요청에는 Get / Post / Put / Patch / Delete 가 있습니다.

요청액션
Get조회
Post등록
Put수정(전체)
Patch수정(부분)
Delete삭제

실무에서는 모든 걸 사용하지 않습니다.
골고루 쓰는 곳도 있지만 Get / Post 만 쓰는 곳도 있습니다.
그렇다면 Get(조회), Post(등록,수정,삭제) 를 하는 것 이겠죠.
저 또한 Get/Post/Put/Delete 만 사용 합니다.
단어만 봐도 어떤 것인지 알기 쉬우니
회사에 맞게 사용하면 됩니다.

Rest API 의미 대충알기

먼저 Rest API 를 만든다는게 뭔 말일까요?
Rest API 는 URL만 봐도 어떤 행위를 하는 URL인지 알 수 있도록 만드는 API 라 생각하면 됩니다.

예를 들어 GET 요청에 /board 라면 board(게시판) 목록을 조회한다던가
POST 요청에 /board 라면 게시판 등록을 한다던가
HTTP 요청과 URL 만으로 어떤 행위(액션)을 하려는지 알수 있도록 API를 만드는 것이죠.

하지만 현실적으로 개발을 하다보면 이 원칙을 지키기란 쉽진 않습니다만
최대한 지키면서 API를 만드는 것이지요.

Get / Post / Put / Delete 요청 만들기

저는 개인 프로젝트를 만들면 Get, Post, Put, Delete 이 4가지만 사용을 합니다.
일단 이 4가지에 대해서 만들어보겠습니다.

만드는 건 너무너무 쉬워요 스프링이 알아서 다해주거든요.

@RestController
public class BaseController {

    @GetMapping("/")
    public String base(){
        return "Hello World!";
    }

    // GET 
    @GetMapping("/get")
    public String get(){
        return "Hello Get";
    }

    // POST
    @PostMapping("/post")
    public String post(){
        return "Hello Post";
    }

    // PUT
    @PutMapping("/put")
    public String put(){
        return "Hello Post";
    }

    // DELETE
    @DeleteMapping("/delete")
    public String delete(){
        return "Hello Delete";
    }
    
}

어노테이션 @에 GetMapping, PostMapping 만 달아주면
요청에 알아서 매핑이 됩니다.
너무 쉽죠?

Postman(포스트맨) 간단히 사용해보기

이제 위에 만든 API 들을 잘 작동하는지 확인을 해봐야겠죠..?
HTTP 요청을 해볼수 있는 툴은 많지만
가장 대표적인 툴이 Postman(포스트맨) 입니다.
포스트맨도 활용을 잘한다면 꽤나 유용한 기능이 많으니 사용해보시길 바랍니다.

일단 postman을 설치 합니다.

포스트맨 설치하러 가기

설치를 완료하고 계정도 만드시길 추천합니다.
이후에 다른 컴퓨터 가서도 연동도 되니 좋으니까요 ㅎㅎ

포스트맨 postman

포스트맨 사용은 어렵지 않습니다.
HTTP 요청을 선택하고 url 를 입력하고 send 를 누르면 됩니다.

postman get

hello get 이 response 되는걸 확인 할 수 있습니다.

postman post요청

post 요청시 hello post가 response 되는걸 확인 할 수 있습니다.

이처럼 포스트맨 사용은 어렵지 않습니다.
좀 더 활용하는 방법은 추후 포스트맨 활용 글을 포스팅 해보겠습니다.

Path Variable , Query Parameter 사용하기

이제는 Path Variable 과 Query Parameter 에 대해서 찍먹 해보겠습니다.
간단히 설명하면 둘다 URL 에 파라미터를 넘기는 방식인데요.
두가지는 차이가 있습니다.

Path Variable 은 URL 안에 들어갑니다.
ex) manablog.co.kr/{value}/board

Query Parameter 는 URL이 끝난 후 추가됩니다.
ex) manablog.co.kr/board?id=10

두 차이를 아시겠나요?
만약 게시글 12번 데이터를 조회하고 싶다면

manablog.co.kr/12/board 혹은 manablog.co.kr?id=12 로 사용하는 셈인거죠.
근데 여기서 차이가 path variable로 사용할땐 ’12’ 만 쓰지만
query parameter 로 쓸때는 id = 12 로 쓰는데요.
query parameter 에서는 key=value 값으로 값을 전달한다 생각하면 됩니다.

그럼 이걸 Controller에서 어떻게 사용하는 보겠습니다.

// Path variable
@GetMapping("/{id}/board")
public String pathGet(@PathVariable String id){ // URL 변수와 변수명이 같아야합니다.
  return "Hello "+ id;
}
    
// Query parameter
@GetMapping("/board")
public String queryGet(@RequestParam String id){ 
  return "Hello "+ id;
}

굉장히 직관적으로 사용하죠. Path variable 은 @PathVariable 어노테이션을 추가해주면 됩니다.
단 URL 에 {id} 와 String id 변수값이 같아야 합니다.
그리고 query parameter 는 @RequestParam 어노테이션을 추가해줘서 매핑되게 합니다.
간단히 몇개를 받을때는 이렇게 받기도 하지만 많은 양을 보내게 된다면 변수가 너무 많아지겠죠?
그래서 객체에 매핑해서 받는 방법도 있답니다. 이건 다음에~

두 API 를 포스트맨에 요청해보겠습니다.

postman 포스트맨

두 요청이 잘 동작하는걸 볼 수 있습니다.

당연히 두가지를 섞어도 됩니다.
/123/board?key=value 이런식으로요.

Query Parameter 여러개 보내기

마지막으로 query parameter 데이터를 여러개 보내려면 & 으로 구분지어 보냅니다.
ex)manablog.co.kr/board?id=123&name=mana&source=wordpress
이런식으로 보낸다고 한다면

@GetMapping("/board")
public String queryGet(@RequestParam String id,@RequestParam String name, @RequestParam String source){
        return "id : "+ id + " name : " + name + " source : " + source;
    }

이제 포스트맨에 요청해보겠습니다.

요청이 잘 되는걸 확인 할 수 있습니다.
이제 기본적인 API 구조는 만들 수 있겠죠..?😎

Leave a Comment