spring tool suite 4 사용
spring starter project 생성
model 만들기
UserProfile.java
package com.newlecture.web.model;
public class UserProfile {
//서버 어플리케이션 개발에서는 멤버변수를 모두 private로 설정하고 멤버변수의 값을 얻기위한 getter setter를 만든다.
private String id;
private String name;
private String phone;
private String address;
public UserProfile(String id, String name, String phone, String address) {
super();
this.id = id;
this.name = name;
this.phone = phone;
this.address = address;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
controller 만들기
UerProfile 이라는 객체를 리턴하면 이 객체를 JSON형태로 자동으로 리턴해서 클라이언트에 전달.
package com.newlecture.web.controller;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.PostConstruct;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import com.newlecture.web.model.UserProfile;
//스프링이 알아서 컨트롤러로 인식하는 어노테이션
@RestController
public class UserProfileController {
//UserProfile을 담는 Map을 선언
private Map<String, UserProfile> userMap;
//@PostConstruct는 UserProfileController 만들고 직후에 호출
@PostConstruct
public void init() {
userMap = new HashMap<String, UserProfile>();
userMap.put("1", new UserProfile("1", "홍길동", "1234-5678", "대구시 태전동"));
userMap.put("2", new UserProfile("2", "홍길순", "1224-5678", "구미시 비산동"));
userMap.put("3", new UserProfile("3", "홍길팔", "1244-5678", "대구시 범어동"));
}
//UerProfile 이라는 객체를 리턴하면 이 객체를 json형태로 자동으로 리턴해서 클라이언트에 전달.
@GetMapping("/user/{id}")
public UserProfile getUserProfile(@PathVariable("id") String id) {
return userMap.get(id);
}
}
list 전체를 리턴하는 api 만들기
@GetMapping
@GetMapping("/user/all")
public List<UserProfile> getUserProfileList() {
return new ArrayList<UserProfile>(userMap.values());
}
get방식은 데이터를 조회할 경우
post 데이터 수정
put 데이터 생성
delete 데이터 삭제
put 데이터 생성 API 만들기
@PutMapping
//추가할 아이디 이름 주소를 파라미터로 전달받는다.
@PutMapping("/user/{id}")
public void putUserProfile(@PathVariable("id") String id, @RequestParam("name") String name, @RequestParam("phone") String phone, @RequestParam("address") String address) {
//userProfile 객체만들기
UserProfile userProfile = new UserProfile(id, name, phone, address);
userMap.put(id, userProfile);
}
REST API 클라이언트 사용해서 테스트
Postman 사용해서 값 넣기
추가된지 확인하기 get all
Post방식으로 수정하기
//수정
@PostMapping("/user/{id}")
public void postUserProfile(@PathVariable("id") String id, @RequestParam("name") String name, @RequestParam("phone") String phone, @RequestParam("address") String address) {
//기존의 사용자 아이디를 찾아서 이름 폰번 주소 바꾸기
UserProfile userProfile = userMap.get(id);
userProfile.setName(name);
userProfile.setName(phone);
userProfile.setName(address);
}
Postman을 이용해서 수정 테스트
아이디 2번의 값을 수정
수정 확인
DeleteMapping을 이용한 삭제
//삭제
@DeleteMapping("/user/{id}")
public void deleteUserProfile(@PathVariable("id") String id) {
userMap.remove(id);
}
유저 아이디 2번 삭제
삭제 확인
controller
package com.newlecture.web.controller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.newlecture.web.model.UserProfile;
//스프링이 알아서 컨트롤러로 인식하는 어노테이션
@RestController
public class UserProfileController {
//UserProfile을 담는 Map을 선언
private Map<String, UserProfile> userMap;
//@PostConstruct는 UserProfileController 만들고 직후에 호출
@PostConstruct
public void init() {
userMap = new HashMap<String, UserProfile>();
userMap.put("1", new UserProfile("1", "홍길동", "1234-5678", "대구시 태전동"));
userMap.put("2", new UserProfile("2", "홍길순", "1224-5678", "구미시 비산동"));
userMap.put("3", new UserProfile("3", "홍길팔", "1244-5678", "대구시 범어동"));
}
//UerProfile 이라는 객체를 리턴하면 이 객체를 json형태로 자동으로 리턴해서 클라이언트에 전달.
@GetMapping("/user/{id}")
public UserProfile getUserProfile(@PathVariable("id") String id) {
return userMap.get(id);
}
@GetMapping("/user/all")
public List<UserProfile> getUserProfileList() {
return new ArrayList<UserProfile>(userMap.values());
}
//추가할 아이디 이름 주소를 파라미터로 전달받는다.
@PutMapping("/user/{id}")
public void putUserProfile(@PathVariable("id") String id, @RequestParam("name") String name, @RequestParam("phone") String phone, @RequestParam("address") String address) {
//userProfile 객체만들기
UserProfile userProfile = new UserProfile(id, name, phone, address);
userMap.put(id, userProfile);
}
//수정
@PostMapping("/user/{id}")
public void postUserProfile(@PathVariable("id") String id, @RequestParam("name") String name, @RequestParam("phone") String phone, @RequestParam("address") String address) {
//기존의 사용자 아이디를 찾아서 이름 폰번 주소 바꾸기
UserProfile userProfile = userMap.get(id);
userProfile.setName(name);
userProfile.setName(phone);
userProfile.setName(address);
}
//삭제
@DeleteMapping("/user/{id}")
public void deleteUserProfile(@PathVariable("id") String id) {
userMap.remove(id);
}
}