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 클라이언트 사용해서 테스트

    www.postman.com/downloads/

     

    Download Postman | Try Postman for Free

    Try Postman for free! Join 13 million developers who rely on Postman, the collaboration platform for API development. Create better APIs—faster.

    www.postman.com

    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);
    	}
    }
    
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기
    loading