Spring Boot

박경희·2023년 7월 10일
0

강의 복습 및 정리

목록 보기
23/38

REST ful 이것만 알면 된다.
REST API

api가 뭘까?(application programming interface)
-> 추상화 됐다는 것. 쏘면 튀어나온다는것.

ex)주소를 입력하면 이러한 페이지가 나올거야 하는 그런것.
공공데이터 api라고 말한다.

restapi는 조금 다른다. 이건 view를 리턴하지 않는다. 데이터를 리턴한다.

@SpringBootApplication
public class DemoApplication {

	public static void main(String[] args) {
		ConfigurableApplicationContext run = SpringApplication.run(DemoApplication.class, args);
		String[] beanDefinitionNames = run.getBeanDefinitionNames();
		for (String b:beanDefinitionNames
			 ) {
			System.out.println(b);

		}
	}
}

이렇게 하고 돌리면 bean에 뭐가 올라가 있는지 볼 수 있다.

포트 바꿔보기


여기에 들어가서
'server.port=80' 이렇게 입력하면 80포트를 사용한다는 것으로 바뀐다.
이건 기본 http://localhost 만 입력해도 접속이된다.

@Controller
public class DemoController {
    @GetMapping("/aaa")
  //데이터만 보내기
    @ResponseBody
    public String test() {
        return "test";
    }
}
// not found 에러
@Controller
public class DemoController {
    @GetMapping("/aaa")
    public String test() {
        return "test";
    }
}
  • 데이터만 보내고싶을 때 @ResponseBody를 붙인다.이게 없으면 view로 보내는 것이기 때문에 view가 없다는 not found 에러가 뜬다.

  • 그런데 맨날 두개씩 달기 귀찮자나~ 그래서 데이터만 꺼내주는 @RestController 로 바꾸주고 @ResponseBody를 지워주면 된다.

@RestController
public class DemoController {
    @GetMapping("/aaa")
    public String test() {
        return "test";
    }
}

-> @RestController와 Controller 차이는 response body 이다. 바디를 리턴해줌.

REST

  1. 바디를 리턴하면 화면이 없다.
    (클라이언트 -서버 구조를 펼쳐야 된다 (라고 한다.))
    어떤 형태로 사용하던 상관없이 나는 데이터만 뽑아주면 되는 것.

  2. 무상태(stateless) - 클라이언트 전에 요청을 기억하고 있지 않는다.
    => ex) A가 10초 전에 질문하고 B가 지금 다시 같은 질문을 물어보는 상황이라고 할 때, 같은 질문이라고 대답을 넘기는게 아니라 다시 대답을 해주는 것이다. .

    즉, 누가 질문을 하던지 계속 답변을 해줘야한다는 것. A가 내일 다시 물어봐도 답변을 해줘야 하는 것이다.

    왜냐? 클라이언트 전에 요청을 기억하고 있지 않으니까. 즉, 항상 대답을 해줘야 한다는 것이다.

  3. 대답을 계속 하다보니까 힘들어서 캐시라는 것을 사용하는 것. 캐시를 사용해라~~

  4. 계층화된 시스템-사전적 단어로는 ‘시스템의 구성요소를 분리하여 독립적 관리
    (m -> c)’ 라고 한다. (코드 관리를 따로 하는 것.)

    유저가 요청하는 것과 완전히 독립적으로 관리를 해야된다는 것만 알고 있자. 지금 알필요없다..

  5. 유니폼 인터페이스 - 이게 가장 쓸데없고 80%는 사용을 안하는 것이다.
    뭔지만 알고 가자~
    -> 서버가 주축이 되어서 다음 페이지를 정해줘야 한다는 것. 굉장히 쓸데없고 코드가 길어지는 거라 많이들 싫어한다.

    ex) 내가 유저를 insert를 함 -> 서버는 user를 지울 수 있는 방법, 수정할 수 있는 방법 모든걸 알려줘야 한다.

restapi

get- body가 없다.
GET요청으로 보내면 'http://localhost?name=fgttjh&age=20' 이런식으로 넘어간. 데이터를 같이 넘겨 보내지만 대신 이런식으로 url을 넘긴다.
이게 바디가 있냐 없냐의 차이다.
post- body가 있다. http://localhost

0개의 댓글