article thumbnail image
Published 2021. 7. 21. 13:35
728x90


📖  왜 API는 JSON으로 쓰일까?

API형식으로 데이터를 받을 때, JSON을 사용한다. 왜 그럴까? 장점이 있기 때문이다. 어떤 장점? 바로 범용성이다.

클라이언트는 사실 수도 없다. 웹 기반의 브라우저, 앱 기반의 스마트폰, IoT 등… 수도 없다. 수많은 클라이언트 별, 맞춤 뷰 페이지를 만드는 것은 어렵다. 이를 해결하는 방법이 역할 분담이다. 서버는 데이터만 전달하고, 클라이언트는 이를 받아 화면에 보여주기로 하는 것이다. 이때 데이터는 JSON으로 나타낸다

 

 

 

 

 

 

단순하게 스프링이 크게 2가지 다른 방식을 제공한다고 이해하면 된다.

  1. 화면 파일을 찾는 기능
  2. HTTP에 바로 응답하는 기능(@ResponseBody)
  • @ResponseBody를 사용하면 경로라는 개념이 없다. HTTP 메시지 바디에 직접 결과가 적히게 된다. (보통 JSON으로)
  • @RequestParam은 클라이언트가 보낸 HTTP 요청 쿼리 정보를 서버에서 받을 수 있는 방법이다.
  • @RequestParam("name")이라고 되어 있으면 http://localhost:8080/~~?name= 여기에서 name을 매칭 해서 값을 읽어오게 된다.
  • @RequestParam("name")으로 쿼리스트링의 key값은 name이라는 것을 명확하게 표현한다.
  • -> @RequestParam("name")을 사용했을 경우 쿼리스트링에서는 반드시 http://localhost:8080/~~?name=asdf으로 사용하여야 한다 
  • 만약 @RequestParam("name") String nme 인 상황에서 ~~~?nme=asdf으로 받으면 에러가 발생한다. @RequstParam을 썼으면 반드시 RequestParam과 key값을 맞춰야 함.

 

 

(수정) 추후 포스팅을 통해 API에 대해 더 자세히 다룬 글을 첨부한다.

https://jminie.tistory.com/120?category=1008953 

 

API란? (SOAP API, REST API)

📌 API란? 우리가 레스토랑에 있다고 가정해보자. 우리는 점원이 가져다준 메뉴판을 보면서 음식을 고르면, 점원이 주문을 받아 요리사에 요청을 한다. 그러면 요리사는 음식을 만들어 점원에게

jminie.tistory.com

 

 

 

 


 

 

 

사용 코드

    @GetMapping("hello-api")
    @ResponseBody
    public Hello helloApi(@RequestParam("name") String name){
        Hello hello = new Hello();
        hello.setName(name);
        return hello; //객체를 넘김
    }

    static class Hello{
        private String name;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }
}

 

 

출력값

 

 

 

JSON 형식으로 결과가 나온 것을 알 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(위 내용은 김영한님과 홍팍님의 스프링 강의를 보고 정리한 글입니다)

'Spring' 카테고리의 다른 글

롬복(Lombok) 과 리펙토링(Refactoring)  (0) 2021.07.21
JPA 레포지토리, DB에 저장하기  (0) 2021.07.20
폼 (form) 데이터 주고 받기  (0) 2021.07.16
뷰 레이아웃  (0) 2021.07.16
뷰 템플릿과 MVC 패턴  (0) 2021.07.15
복사했습니다!