본문 바로가기

JAVA/Spring

포스트맨 실습 : 데이터 요청하기

1. 데이터 보호하기

자바에서는 값을 바로 수정할 수 없게 하기 위해서(데이터를 보호하기 위해) 변수를 private으로 만든다.

객체지향에서는 변수를 private으로 만들고 메소드를 통해 변수 값이 변할 수 있게 만들어야 한다.

private int hungry = 50;
public void eat() {
	hungryState+=10;
}

함수를 통해 값에 접근한다!! 변수의 상태는 메소드에 의해 변경된다.

 

2. source에서 getter와 setter + constructor(생성자) 만들기

	private int id;
	private String username;
	private String passward;
	private String email;
	
	public Member(int id, String username, String passward, String email) {
    //생성자
		super();
		this.id = id;
		this.username = username;
		this.passward = passward;
		this.email = email;
	}
    
    //아래에는 getter, setter
@GetMapping("/http/get")
	public String getTest(@RequestParam int id, @RequestParam String username){
		return "get 요청"+id +","+username; //서버에서 해당 데이터를 받을 수 있다
	}

@RequestParam으로 입력값을 파라미터로 받을 수 있다.

? 뒤에 있는 것은 쿼리스트링으로 데이터에 대한 정보를 전달한다.

 

스프링은 파라미터 입력값으로 객체를 넣을 수도 있다. 

Member 클래스는 id, username, password, email를 가지고 있으며

@RequestParam int id, @RequestParam String username 이 아닌 Member 객체를 사용하여 한꺼번에 보내기

(Member 클래스에 있는 변수를 이용하는 것이다)

@GetMapping("/http/get")
	public String getTest(Member m){
		return "get 요청"+m.getId() +","+m.getUsername(); //서버에서 해당 데이터를 받을 수 있다
	}

 

3. 다양한 방식으로 데이터 요청하기

get 방식으로 데이터를 요청할때는 ? 뒤에 데이터 정보를 입력하는 쿼리스트링을 쓰며,

post, put, delete 방식으로 데이터를 요청할 때는 주소창에 데이터를 보내는 것이 아닌 body에 보내게 된다.

포스트맨으로 데이터를 요청하였다.

Body -> x.www-form-urlemcoded는 가장 기본적인 post 요청으로 form 타입으로 데이터를 요청하는 것이다

 

데이터 타입에 맞는 데이터를 요청하려면? @RequestBody 어노테이션으로 타입을 정하고 포스트맨 body의 raw를 사용한다

//http://localhost:8080/http/post (insert)
	@PostMapping("/http/post") //text/plain
	public String postTest(@RequestBody String text){
		return "post 요청: " +text;
	}

json 데이터를 요청하려면? (*mime 타입 : application/json)

json 데이터는 key와 value로 이루어져 있으며

key는 항상 String 값이기 때문에 쌍따옴표가 필요하고, value는 int나 String 등 다양한 타입을 넣을 수 있다.

mime 타입이 json이 된다. 변환해주는 일은 스프링부트의 MesageConverter가 한다

body에 데이터를 실어 보내면 @RequestBody라는 어노테이션으로 매핑해서 오브젝트로 받을 수 있다.

 

 

 

 

 

 

 

본 강의는 '메타코딩'님의 동영상 강의를 참고하였습니다.

출처 : https://www.youtube.com/playlist?list=PL93mKxaRDidECgjOBjPgI3Dyo8ka6Ilqm