404 에러
내가 원하는 주소에 아무것도 없다
웹에서 사용되는 데이터나 리소스를 http uri로 표현하고
http 프로토콜을 통해 요청과 응답을 정의하는 방식
하나의 규범
많은 사람들이 하는 거라서 규범을 지켜야 한다
restful api
네이버 그런 rest api로 괜찮은가
https://www.youtube.com/watch?v=RP_f5dMoHFc
rest 성숙도 모델은 2단계로 충분하다
1단계에서는 개별 리소스(자원, 데이터, 자료)와의 통신을 준수해야 한다
웹개발은 문서를 만드는 작업
자원 : 천연 자원
커뮤니티 : ram, cpu, 하드디스크
서버, 데이터베이스 : 특정한 데이터 쪼가리 하나
=> 구체화 시켜야 한다
주문도 특정하게 주소도 특정하게
get 메소드는 request body가 없다
그러므로 query로 궁금한 부분을 찾는다
post는 내용이 있으니까
http의 형식을 제대로 알아야 한다
get with request body를 하는 것은 지양하도록
request body가 뭐지??
: data sent by the client to your API.
: 요청한 내용
query를 사용하는 이유
: 파라미터는 서버의 폴더에 접근하는 거라면 보다 세부적인 해당사항에 맞는 결과물을 받기 위한 것
payload : 응답받는 본문
rest 성숙도 3단계
https://blog.restcase.com/5-basic-rest-api-design-guidelines/
mdn 문서를 보고 학습하기
crud : create read update delete (개발의 기초/ 어떤 언어든 이것부터 알아야)
get 조회 read
그러므로 get으로는 변경할 수 없다
get을 여러번 해도 결과는 항상 같아야 한다 ('멱등성' idempotence)
조회 요청을 보냈다고 서버/데이터베이스의 리소스가 변경되지 않는다(safe)
post 생성 create
한번 요청을 보냈을 때 결과 !== 100만번 보냈을 때 결과 (멱등성 X)
최초 : 생성이 되었다는 응답
2번째 : 이미 있다는 응답
그러므로 결과가 다르다
요청을 보냈면 서버/데이터베이스의 리소스가 변경된다(safe O)
put 완전히 바꾸는 것
patch 조금만 바꾸는 것
=> 둘의 차이 찾아보기
options: 소통 옵션 -> 이거 해도 되겠니? 라고 물어보는것
get 요청
response header가 이렇게 정리되어서 나온다
원래는 이렇게 나온다
이름 학번 등 동아리 가입서 양식이 정해져 있을 때 이대로 쓰지 않으면 정보 처리 시 불편
문서 규격을 만들고 거기에 맞게 정보를 적게한다
get이 요청 헤더 - 터미널이 보내는 것
아래 http2가 응답 헤더 - 해당 서버에서 보내는 것 (powered by express: express.json으로 만든 서버라는 말!)
보내는 것은 달라도 응답 헤더가 같다
-> 응답 헤더 아래가 html 문서
-> 브라우저는 이걸 받아서 화면을 보여준다
js, css도 받아오고 싶으면 일일히 요청을 해아 한다
요즘은 postman으로 헤더가 다 설정되어 있어서 직접 할 필요 없다
매개변수다
q=javascrotp(객체의 속성 = 객체의 value 같은 느낌)
대표적으로 4가지 경우에 사용한다
1. paging
: page 넘버
: 만개 넘는 데이터가 있을 때 10개씩 한 페이지로 만드는 것 [paging, pagenation]
ex. /customers?page=2&limit=10 : 11~20번째
ex. /customers?page=1&limit=10 : 1~10번째
2. filtering
?status=opten
오픈된것만 가져와라
3. sorting
?direction=desc
역순으로
4. searching
?q = js
javscript인 것만 리턴
상태 코드
: networt tab을 사용하면 확인 가능하다
200 성공 : 새로운 요청 시
304 새로고침을 하면 아까 했던 요청이라고 인식.
400 클라이언트에서 잘못된 요청을 했다
403 forbidden
404 no resource
500 서버에서 에러
status code는 아직 논쟁이 많다
헷갈리면 깃허브, 호주 정부, 토스, 카카오 등의 오픈 api ckarh