spring rest api 예제
Spring은 Java 기반의 웹 애플리케이션 개발을 위한 프레임워크로, RESTful 웹 서비스를 구축하는 데 매우 유용합니다. 이번에는 Spring 프레임워크를 사용하여 간단한 REST API를 구현하는 예제를 살펴보겠습니다.
프로젝트 설정
먼저, Spring Boot를 사용하여 새로운 프로젝트를 생성합니다. 이 프로젝트에는 Spring Web 및 Spring Data JPA를 추가로 의존성에 포함해야 합니다. build.gradle 파일에 다음 내용을 추가합니다.
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'com.h2database:h2'
}
데이터 모델링
간단한 예제를 위해 “Todo”라는 모델을 생성합니다. Todo 모델에는 id, title, description, completed 필드가 있습니다. Todo.java 파일을 생성하고 다음 코드를 작성합니다.
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Todo {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
private String title;
private String description;
private boolean completed;
// Getter와 Setter 메소드 생략
// 생성자 생성
public Todo() {}
public Todo(String title, String description) {
this.title = title;
this.description = description;
this.completed = false;
}
}
컨트롤러 작성
이제 컨트롤러를 작성하여 REST API를 처리할 수 있도록 합니다. TodoController.java 파일을 생성하고 다음 코드를 작성합니다.
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/todos")
public class TodoController {
@Autowired
private TodoRepository todoRepository;
@GetMapping("/")
public List<Todo> getAllTodos() {
return todoRepository.findAll();
}
@PostMapping("/")
public Todo createNewTodo(@RequestBody Todo todo) {
return todoRepository.save(todo);
}
@DeleteMapping("/{id}")
public void deleteTodoById(@PathVariable Long id) {
todoRepository.deleteById(id);
}
}
데이터베이스 설정
H2 데이터베이스를 사용하여 간단한 메모리 데이터베이스를 설정합니다. application.properties 파일에 다음 내용을 추가합니다.
spring.h2.console.enabled=true
spring.datasource.url=jdbc:h2:mem:testdb
API 테스트
이제 API를 테스트해보겠습니다. Postman 도구나 curl을 사용하여 다음 URL에 요청을 보냅니다.
- 모든 Todo 가져오기: GET http://localhost:8080/todos/
- 새로운 Todo 생성하기: POST http://localhost:8080/todos/
- Todo 삭제하기: DELETE http://localhost:8080/todos/{id}
결론
이 예제에서는 Spring 프레임워크를 사용하여 간단한 REST API를 구현하는 방법을 살펴보았습니다. Spring Boot를 사용하면 빠르게 RESTful 웹 서비스를 개발할 수 있습니다.