제수기 - 제발수업내용을 기억해라 / 단순수업정리 시리즈
http 개발 같이 했던 사람 중에 한 분이, 왜 처음 사용할 때 인터페이스를 충분히 활용 못하는가. 왜 get, post 만 쓰는거야? 우리는 한 10개 정도 만들었는데? 해서 속상해서 더 잘 사용할 수 있는 걸 만든 게 Restful API.
요청의 성격별로 http 전송방식 구분했다.
이걸 시작으로 어떤 약속을 만들었냐.
url pk 아이디를 정하기로 했다.
이런 식으로 복수면 qeustions, 하나만 가져올 거면 question/123 이런식.
등록할 때는 POST / questions
수정할 때 PATCH / questions / 123
삭제도 DELETE / questions / 123
명사형으로 이렇게 간결하게 써나가자는 약속을 했다.
우리가 구현할 거
GET/questions
:qeustion 전체 목록 조회. 마지막 반환값만 html이 아니라 jason에 담아서 하면 되는 거다. 다른 것들도 마찬가지.GET/questions/123
POST/qeustions
PATCH/qeustions/123
DELETE/qeustions/123
이게 뻔하기 때문에 자동으로 등록해주는 패키지가 있다. djangorestframework
, django-admin startapp qna
이런 거.
view set : view 함수를 자동으로 만들어준다.
그 코드가 이런식이고
json 파일로 오며가며 변환시켜주는 Serializer
이런식으로 모델을 넣어주면 된다.
url을 이렇게 해주면
어떤 api 기능이 있는지 보인다.
전체 url도 헷갈리지 않게 api라고 적어놨다.
PATCH로 수정하려고 할 때 이런식으로 요청하고, 응답이 온다.
delete 시 관련 내용이 뜨지는 않지만, 성공했다는 응답이 204 No Contnet
이렇게 온다.
html을 어디서 만들어내는가에 대한 문제.
server-side rendering(SSR)
: 기존에 배운 ajex 같은 방식.client-side rendering(CSR)
: react, vue.js 등.. 사용자는 react server에 먼저 붙는다. 그래서 index.html 같은 페이지를 받는다. 그러고나면 사용자는 최초의 html 값만 받고 그 다음부터 페이지 내용들은 죄다 backend server에서 내용을 채운다. 그러면 data를 받게 되는데, backend server가 reset api server다.django와는 흐름이 다르다. 구조를 이해하고 있으면 나중에 도움이 될 것.
이따가 올려주신 내용 참고해서 실제로 이슈대로 따라해보기.