ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • REST , REST API
    SPRING 공부 2022. 1. 25. 00:54
    	@RequestMapping(value = "/stomp/member", method=RequestMethod.GET)
    	public String getChatMemberList() throws Exception{
    		JSONObject js = new JSONObject();
    		JSONArray jsonArr = new JSONArray();
    		for (Entry<String, WebSocketSessionInfo> entry : StompWebSocketConfig.sessionMap.entrySet()) {
    			JSONObject json = new JSONObject();
    			json.put("ipAddress", entry.getValue().getIpAddress());
    			json.put("conCnt", entry.getValue().getConCnt());
    			json.put("conStatus", entry.getValue().isConStatus());
    			jsonArr.put(json);
    		}  
    		js.put("member", jsonArr); 
    		return js.toString();
    	}

    REST란?

    HTTP URI로 리소스 (자원)요소를 표현하고 HTTP METHOD로 해당 리소스에 대한 행위를 정의하는것

    한 마디로 HTTP를 이용한 URI  (예: localhost/board/ 라고 한다면 board가 리소스가 된다.

    이 board는 게시판 리소스에 대한 것으로 HTTP Method GET, POST, PUT, DELETE 를 통해 각각

    조회, 입력, 수정 , 삭제 등의 기능들의 요청을 가능하게 하는 아키텍처이다.

     

    REST API란?

    스프링에서 하나의 요청으로 (ModelAndVIew)이용하여 템플릿 엔진인 Thymeleaf와 jquery를 통해 java에서 데이터를

    담아주어 서버단에서 데이터를 생성하여 보내는 식으로 웹페이지를 생성해 왔지만,

    다양한 플랫폼에서 HTTP 요청만 가지고도 백엔드 서버에서 원하는 데이터를 뽑아 낼 수 있다면, 매 플랫폼마다

    백엔드 서버를 구축할 필요가 없어진다. 

    이렇게 한 가지 백엔드 서버에서 보내주기 위해 데이터형식을 맞춰주고 있는데,

    기존에는 XML형식의 데이터 전송으로 데이터 형식을 맞춰서 전송해줬었는데, 요즘에는 JSON형식으로 데이터를

    전송해주고있다.

     

     

    다음은 기존 Spring JSP만 구동하던 요청방식과 REST API 방식을 살펴보자.

    	@RequestMapping("/stompChat")
    	public ModelAndView stompChat() {
    		ModelAndView mv = new ModelAndView("/stomp/stompChat");
    		return mv;
    	}

    기존에 JSP에 사용하던 HTTP방식이다. 

    눈에띄는 특징은

    1. 요청에 명사+동사가 들어가게 된다.(구체적 명시를 위해)

    2. 코드가 간결하다.

    3. View와 직접 연결한다.

     

    	@RequestMapping(value = "/stomp/member", method=RequestMethod.GET)
    	public String getChatMemberList() throws Exception{
    		JSONObject js = new JSONObject();
    		JSONArray jsonArr = new JSONArray();
    		for (Entry<String, WebSocketSessionInfo> entry : StompWebSocketConfig.sessionMap.entrySet()) {
    			JSONObject json = new JSONObject();
    			json.put("ipAddress", entry.getValue().getIpAddress());
    			json.put("conCnt", entry.getValue().getConCnt());
    			json.put("conStatus", entry.getValue().isConStatus());
    			jsonArr.put(json);
    		}  
    		js.put("member", jsonArr); 
    		return js.toString();
    	}

    HTTP REST API방식이다.

    눈에띄는 특징은

    1. 요청에 명사가 들어가게 된다.  METHOD가 동사 역할을 하게된다.

    2. 매핑과정이 조금 번거롭다. (추후에 mapping method를 만들어 주는 것 이 좋다. [재귀함수를 이용하는 것이 좋겠다.])

    3. 리턴타입이 JSON 오브젝트를 문자열로 치환 후 JSON String으로 전송된다.

    4. View와 분리되었다.

     

     

    REST API는 API 요청들을 확인해주는 POSTMAN에서도 확인할 수 있다.

    'SPRING 공부' 카테고리의 다른 글

    스프링 캐시  (0) 2023.11.05
    ORM , SQLMapper  (0) 2022.01.27
Designed by Tistory.