기존 코드 분석을 보다가 GET 요청을 하는 API에서 request.GET.get 이라는 문법을 봤다.
분명히 GET 요청을 할 때는POST 요청을 할 때와 다르게 json 형식으로 data를 넣을 수가 없는 걸로 알고 있었기 때문에
한참을 헤매다가 이 글을 쓴다.
*참고로 request.GET 은 GET으로 받는 인자들을 모두 포함하는 딕셔너리 객체이다.
1. query parameter
결론부터 말하면, 위와 같이 path뒤에 추가적으로 보낼 query를 작성하는 방식이다.
스프링은 @RequestParam 어노테이션을 사용하여 어떤 query를 작성할 것인지를 보여줬는데, 장고에는 이런게 없이
user_id = request.GET.get("user_id") 이런 식으로 사용하기 때문에 API 명세서를 잘 확인하는 것이 중요할 것 같다.
2. url parameter
path('channels/<channel_id>/unfollow/', delete_channel_follow),
이런 식으로 작성한 path url에서 <channel_id>부분이 url parameter이다. 스프링으로 따지면 {channel_id} 로 작성되고
서비스 단에서는 @PathVariable로 명시하는 data이다.
위 그림과 같이 url parameter방식을 사용한 경우에는 query parameter방식과 다르게 함수를 정의할 때 매개변수로
request와 더불어 url parameter를 추가적으로 넘겨줘야 한다.
References
https://velog.io/@swhybein/django-queryurl-%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0
'Django' 카테고리의 다른 글
Django __str__ (0) | 2021.08.30 |
---|---|
Django 쿼리문 F() 사용하기 (0) | 2021.08.04 |
Django ORM query set 중복 제거 (0) | 2021.07.26 |
Django select_related / prefetch_related (0) | 2021.07.14 |
Django 세팅하기 (0) | 2021.07.11 |