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에 요청을 보냅니다.

결론

이 예제에서는 Spring 프레임워크를 사용하여 간단한 REST API를 구현하는 방법을 살펴보았습니다. Spring Boot를 사용하면 빠르게 RESTful 웹 서비스를 개발할 수 있습니다.