http 4가지 요청 방식
클라이언트가 웹서버에 요청
웹서버는 DB에 SELECT, INSERT, UPDATE, DELETE 요청을 해서 응답한다
(1) GET(동사) - 데이터 요청
(2) POST(동사) - 데이터 전송
http Body 필요 (Body에는 데이터가 담겨져 있다)
(3) PUT(동사) - 데이터 갱신
http Body 필요 (Body에는 데이터가 담겨져 있다)
(4) DELETE(동사) - 데이터 삭제
실습
생성
두개만 체크하고 finish
목록이 다르게 보이면 점3개 있는거 클릭해서 저렇게 맞춰주면 목록이 이미지처럼 보여진다.
자바 파일 생성
HttpController 생성
package com.cos.controllerdemo.web;
public class HttpController {
public String get() {
}
public String post() {
}
public String put() {
}
public String delete() {
}
}
Java
복사
이렇게는 단순한 함수다.
얘들을 컨트롤러로 만들려면
package com.cos.controllerdemo.web;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HttpController {
public String get() {
}
public String post() {
}
public String put() {
}
public String delete() {
}
}
Java
복사
@RestController 어노테이션을 붙여주면 된다. 그러면 컨트롤러로 인식한다
get함수를 호출할려면
//http://localhost:8080/get
@GetMapping("/get")
public String get() {
}
Java
복사
package com.cos.controllerdemo.web;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HttpController {
//http://localhost:8080/get
@GetMapping("/get")
public String get() {
return "get 요청됨";
}
//http://localhost:8080/post
@PostMapping("/post")
public String post() {
return "post 요청됨";
}
//http://localhost:8080/put
@PutMapping("/put")
public String put() {
return "put 요청됨";
}
//http://localhost:8080/delete
@DeleteMapping("/delete")
public String delete() {
return "delete 요청됨";
}
}
Java
복사
둘 중 하나만 쓰면되는데 우린 파일이 아니라 데이터를 응답해줄거라서
위에 어노테이션은 주석처리.
package com.cos.controllerdemo.web;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RestController;
//@Controller //파일을 응답하는 컨트롤 (클라이언트가 브라우저면 .html 파일을 응답하는게 좋다)
@RestController //데이터를 응답하는 컨트롤러 (클라이언트가 핸드폰이면 data를 응답하는게 좋)
public class HttpController {
//http://localhost:8080/get
@GetMapping("/get")
public String get() {
//만약 @Controller 파일 어노테이션이였을때는 return 하는게 파일명이 되어야한다.
//return "a.html";
return "get 요청됨";
}
//http://localhost:8080/post
@PostMapping("/post")
public String post() {
return "post 요청됨";
}
//http://localhost:8080/put
@PutMapping("/put")
public String put() {
return "put 요청됨";
}
//http://localhost:8080/delete
@DeleteMapping("/delete")
public String delete() {
return "delete 요청됨";
}
}
Java
복사
서버 실행
웹 서버 진행시 404 에러가 뜬다.
하지만 앤드포인트까지 적으면 데이터가 온다
//http://localhost:8080/get
@GetMapping("/get")
public String get() {
//만약 @Controller 파일 어노테이션이였을때는 return 하는게 파일명이 되어야한다. return "a.html";
return "<h1>get 요청됨</h1>";
}
Java
복사
return 에 <h1> 태그 넣어서 데이터를 확인해보자.
고치고 저장하는 순간 서버가 리로드 되는데 이게 스프링부트 데브툴의 라이브러리다.
그리고 우리 @어노테이션을 어떻게 쓸 수 있냐면 시작할때 스프링부트의 스타터 라이브러리를 체크해서 사용가능한거다
이제 post 요청할려면
웹 브라우저에서는 post요청을 주소에서 못한다.
delete도 못한다
그래서 저번에 설치한 Postman 프로그램 켜서
post 요청이 온다
put
delete