0. RESTful이란?
RESTful 이란 Representational State Transfer(REST) 아키텍처 스타일을 따르는 웹 서비스로서 분산 하이퍼미디어 시스템을 위한 자원(URI)의 표시, 행위(HTTP Method)를 정의한다. RESTful 한 웹 서비스는 이러한 REST 아키텍처 스타일을 따르며, 각 자원에 대한 고유한 URI를 정의하고 해당 자원의 CRUD(Create, Read, Update, Delete) 작업을 HTTP Method를 통해 처리할 수 있는 웹 서비스를 말한다.
스프링에서는 @RestController 어노테이션을 사용하면, 해당 클래스가 RESTful 웹 서비스를 제공하는 컨트롤러임을 나타낸다. 이 클래스에서 정의된 각각의 메소드들은 URI, HTTP Method에의해 매핑될 수 있으며 해당 URI로 요청이 들어오면 해당 메소드를 실행한다. 이를 통해 클라이언트와 서버 간의 데이터 통신을 RESTful한 방식으로 처리할 수 있다.
RESTful 한 웹 서비스는 주로 JSON 형식의 데이터를 사용합니다. JSON은 경량 데이터 교환 형식 중 하나로서, 데이터를 표현하기 위한 문법적인 규칙을 정의 하고 있습니다. JSON은 자바스크립트의 객체 표기법을 기반으로 하고 있어서, 자바스크립트에서 쉽게 파싱할 수 있습니다.
만약 RestController로 문자열을 반환할 경우 해당 문자열이 HTTP Response Body에 포함되어 반환됩니다.
객체를 반환하는 경우 스프링 프레임워크에서 자동으로 해당 객체를 JSON 형식으로 반환하여 HTTP Response Body에 포함시켜 반환합니다.
반환할 수 있는 형식에는 JSON, 문자열 뿐만 아니라 다른 형식도 가능합니다. 예를들어, 이미지, 파일과 같은 이진 데이터를 반환할 수 있습니다. 하지만 일반적으로 RESTful한 웹 서비스에서는 JSON 형식의 데이터를 주고 받는 것이 일반적입니다.
1. 스프링부트에서 RESTful API 구현하기
@RestController
public class CourseController {
@GetMapping("/courses")
public Course getCourses() {
Course course = new Course();
course.setTitle("웹개발의 봄 스프링");
course.setDays(35);
course.setTutor("남병관");
return course;
}
}
실행하기 :
서버를 실행한 이후 브라우저에서 localhost:8080/courses를 요청한다.
실행결과 :
{
"title": "웹개발의 봄 스프링",
"tutor": "남병관",
"days": 35
}
2. RESTful API 설계 원칙
https://sanghaklee.tistory.com/57
RESTful API 설계 가이드
1. RESTful API 설계 가이드본 문서는 REST API를 좀 더 RESTful 하게 설계하도록 가이드할 목적으로 만들어졌다.따라서, 기본적인 REST API 개념 설명은 아래의 링크로 대신한다. REST API 제대로 알고 사용
sanghaklee.tistory.com
'웹 개발 > 스프링' 카테고리의 다른 글
[스프링 부트 심화] 스프링 동작 원리 (0) | 2023.04.08 |
---|---|
[스프링 부트 기초] 스프링 나만의 셀렉샵 (0) | 2023.04.07 |
[스프링 부트 기초] 스프링 메모장 만들기 (0) | 2023.04.05 |
[스프링 부트 기초] 스프링과 데이터베이스 (1) | 2023.04.03 |
[스프링 부트 기초] 프로젝트 셋팅하기 (0) | 2023.03.28 |