Spring/웹 개발 101

2.2.3 REST API || 2.2.4 컨트롤러 레이어

cosmohoo 2022. 4. 7. 00:10
반응형

REST는 'Representational State Transfer' 의 약자로 아키텍쳐 스타일을 뜻합니다. 

* 아키텍쳐 스타일 : 아키텍쳐 디자인                                 *아키텍쳐 패턴 : 반복되는 문제 상황을 해결하는 도구

 

 

REST 제약조건

  • 클라이언트-서버
  • 상태가 없는
  • 캐시되는 데이터
  • 일관적인 인터페이스
  • 레이어 시스템
  • 코드-온-디맨드

*리소스란 REST API가 리턴할 수 있는 모든 것을 의미합니다. EX ) HTML , JSON, IMAGE

 

 


 

HTTP는  get/post/put/delete/options 등과 같은 메서드와 URI를 이용해 서버에 HTTP 요청을 보낼 수 있다.

 

GET /test HTTP/1.1
Host: localhost:8080
Content-Type: application/json
Content_Length: 17

{
	"id":123
    
}

 

=> 위 코드는 http GET 메서드를 이용해 test라는 리소스를 요청한다는 뜻입니다. 

1. 자기주소를 제외한 /{리소스} 이해해야함

2. 이 요청이 어떤 HTTP 메서드를 이용했는지 알아야합니다. 

3. 그 후 해당 리소싕 hTTP 메서드에 연결된 메서드를 실행해야합니다. 

*스프링 부트 스타터 웹의 어노테이션을 이용하면 이 연결을 쉽게 할 수 있습니다. 

package com.example.demo.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("test") //resource
public class TestController {
	
	@GetMapping
	public String testController()
	{
		return "Hello World!";
	}

}

 

 

 

test로 접근하여 GET요청
포스트맨을 이용해 테스팅한 장면

 

 

@RestController
@RequestMapping("test") //resource
public class TestController {
	
	@GetMapping("/testGetMappiing")
	public String testControllerWithPath()
	{
		return "Hello World! testGetMapping";
	}

}

=>getMapping에서도 URI 경로 지정가능합니다. 

=> 물론, RequestMapping에서도 지정이 가능하구요

 

반응형