네트워크 기본
restful API에 대해 설명해주세요.
두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스
=> 리소스가 URI, HTTP 메서드를 통해 구분된다.
ex) 클라이언트에서 서버로 GET, POST, PUT등의 HTTP 요청을 보내면 서버에서 클라이언트로 JSON 데이터를 보냅니다
ex2) /api/user 로 post로 http를 날린 상황
@PostMapping("/api/user")
public ResponseEntity<User> createUser(@RequestBody User user) {
// save user to database or perform other operations
return ResponseEntity.ok(user);
}
+api란?
: 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙
HTTP 통신에 대해서 설명해주세요.
Http란 백엔드와 클라이언트가 소통하기 위해 정해놓은 명세서 입니다.
http에는 크게 헤더와 바디가 있으며
헤더에는 일반/응답헤더/요청헤더가 있는데 일반에는 요청 URL, 요청 메서드, 상태코드 등이 있고 응답헤더에는 응답자의 정보가 요청헤더에는 요청자의 정보가 있습니다. 요약하자면 HTTP 전송에 필요한 부가적 요소들이 들어가 있습니다.
(여기서 응답자는 클라이언트 요청자는 백엔드인가?)
바디에는 요즘 restful API에서 json 데이터가 주로 들어갑니다. 이것이 실제 백엔드와 프론트엔드가 주고 받는 데이터입니다
Http 통신이란 이러한 명세서를 가지고 백엔드와 프론트가 서로 소통하는것을 의미합니다
HTTP 메소드 GET과 POST의 차이에 대해서 설명해주세요.
GET은 받아온다는 개념 / POST는 수행한다는 개념
GET
1. 서버에서 어떤 데이터를 가져와서 보여줄때 사용, db에 저장된 값을 바꾸지 않고 보기만 하는 경우
2. 요청을 전송할때 URL 주소 끝에 파라미터로 포함되어 전송
① 쿼리파라미터 ?value1=3&value2=10 => @RequsetParam : 정렬이나 필터링을 하는경우
② 파라미터 /{value} => @PathVariable : resource를 가져오는 get 메서드인 경우
POST
1. DB 내부의 값을 변경할때 사용
2. 요청을 전송할때 바디에 넣어서 전송
① 쿼리파라미터 형식 : form 사용 경우 => @RequsetParam
② json 형식으로 전송 => @RequestParam으로 받음
API 던지고 받는 연습 by(Postman + https://jsonplaceholder.typicode.com/)
1. 모든 post들을 조회하기
2. 2번 post 조회하기
3. 3번 post에 대한 comment들 조회하기 (2가지 방법이 있습니다. 2가지 방법 모두 실행해보세요)
4. post 하나 등록하기
+ posts 중 id=1 인 데이터 수정
+ posts 중 id=1 인 데이터 삭제
postman으로 공공데이터 api 호출하기
국제방송교류재단_뉴스기사API를 이용하였고
궁금한 점
json 형식을 보면 사이트의 db 구조를 알수 있나
공공데이터 포털 api의 데이터를 spring boot에서 데이터를 파싱해서 프론트로 넘겨주려면 어떻게 해야하나(Requestbody 사용?)
이글 곳곳에 떠오른 질문을 형광펜으로 쳐놨습니다!