728x90
REST API란?
REST API는 REST(Representational State Transfer) 아키텍처를 기반으로 만들어진 웹 서비스 인터페이스입니다.
HTTP 프로토콜을 사용하여 클라이언트와 서버 간에 데이터를 교환할 수 있도록 설계되었습니다.
REST API의 특징
- 자원(Resource) 기반
- 모든 데이터는 URI로 식별됩니다.
예: https://api.example.com/users는 사용자 정보를 나타냅니다.
- 모든 데이터는 URI로 식별됩니다.
- HTTP 메서드 활용
- REST API는 HTTP 메서드를 통해 자원에 대한 작업을 정의합니다.
메서드 | 설명 | 예 |
GET | 자원 조회 | /users |
POST | 자원 생성 | /users |
PUT | 자원 전체 수정 | /users/1 |
PATCH | 자원 일부 수정 | /users/1 |
DELETE | 자원 삭제 | /users/1 |
- Stateless(무상태성)
- 서버는 클라이언트의 상태를 저장하지 않습니다.
요청마다 필요한 모든 정보를 포함해야 합니다.
- 서버는 클라이언트의 상태를 저장하지 않습니다.
- JSON 기반 데이터 교환
- REST API는 일반적으로 JSON 형식으로 데이터를 주고받습니다.
예:
- REST API는 일반적으로 JSON 형식으로 데이터를 주고받습니다.
{
"id": 1,
"name": "John Doe"
}
REST API 간단한 Java 예제
1. Maven 프로젝트 설정
pom.xml에 필요한 라이브러리 추가:
<dependencies>
<!-- Spring Boot Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
2. REST API 서버 코드
(1) Spring Boot REST Controller 생성
다음은 사용자 정보를 관리하는 간단한 REST API 예제입니다.
UserController.java:
package com.example.demo.controller;
import org.springframework.web.bind.annotation.*;
import java.util.*;
@RestController
@RequestMapping("/api/users")
public class UserController {
private Map<Integer, String> users = new HashMap<>();
// 1. 사용자 목록 조회 (GET)
@GetMapping
public Map<Integer, String> getUsers() {
return users;
}
// 2. 사용자 추가 (POST)
@PostMapping
public String addUser(@RequestParam String name) {
int id = users.size() + 1;
users.put(id, name);
return "User added with ID: " + id;
}
// 3. 특정 사용자 조회 (GET)
@GetMapping("/{id}")
public String getUser(@PathVariable int id) {
return users.getOrDefault(id, "User not found");
}
// 4. 사용자 삭제 (DELETE)
@DeleteMapping("/{id}")
public String deleteUser(@PathVariable int id) {
if (users.containsKey(id)) {
users.remove(id);
return "User deleted with ID: " + id;
}
return "User not found";
}
}
3. REST API 서버 실행
Spring Boot 애플리케이션을 실행합니다.
DemoApplication.java:
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
서버가 실행되면, 기본적으로 http://localhost:8080에서 REST API를 사용할 수 있습니다.
4. REST API 호출 및 테스트
REST API 호출은 Postman, cURL, 또는 Java의 RestTemplate를 이용할 수 있습니다.
다음은 cURL과 Java 클라이언트를 사용하는 방법입니다.
(1) cURL을 이용한 테스트
1. 사용자 추가:
curl -X POST "http://localhost:8080/api/users?name=John"
2. 사용자 목록 조회:
curl -X GET "http://localhost:8080/api/users"
3. 특정 사용자 조회:
curl -X GET "http://localhost:8080/api/users/1"
4. 사용자 삭제:
curl -X DELETE "http://localhost:8080/api/users/1"
(2) Java 클라이언트로 호출
ApiClient.java:
package com.example.demo.client;
import org.springframework.web.client.RestTemplate;
import org.springframework.http.ResponseEntity;
public class ApiClient {
public static void main(String[] args) {
String baseUrl = "http://localhost:8080/api/users";
RestTemplate restTemplate = new RestTemplate();
// 1. 사용자 추가
String addUserUrl = baseUrl + "?name=Alice";
String addUserResponse = restTemplate.postForObject(addUserUrl, null, String.class);
System.out.println(addUserResponse);
// 2. 사용자 목록 조회
ResponseEntity<String> users = restTemplate.getForEntity(baseUrl, String.class);
System.out.println("Users: " + users.getBody());
// 3. 특정 사용자 조회
ResponseEntity<String> user = restTemplate.getForEntity(baseUrl + "/1", String.class);
System.out.println("User with ID 1: " + user.getBody());
// 4. 사용자 삭제
restTemplate.delete(baseUrl + "/1");
System.out.println("User with ID 1 deleted");
}
}
LIST
'Develop' 카테고리의 다른 글
Git에 대한 상세 설명 및 사용 방법 (1) | 2024.12.24 |
---|---|
[JavaScript] 엑셀 Excel 생성하기: XLSX 라이브러리 사용 예제 (1) | 2024.12.18 |
[JavaScript] Toastr js 간단하고 세련된 알림 메시지 라이브러리 (4) | 2024.12.17 |
[PostgreSQL] 나누기 연산 소수점 계산하기 (4) | 2024.12.16 |
[JavaScript] history pushState 와 replaceState 이해하기 (6) | 2024.12.11 |