Application Programming Interface
각각 API구조를 작성하는 모습이 너무 다르니 약속을 만들어서 다같이 통일해서 쓰자!
GET
게시물 달라 / POST
정보줄테니 만들어달라)Uniform Resource Identifier (통합 자원 식별자)
Uniform Resource Locator (통합 자원 위치)
80
443
추상화
된 형태의 구조를 표현#
이후 부분은 서버에 전송되지 않음https://docs.djangoproject.com/en/4.2/intro/install/#quick-install-guide
#quick-install-guide
는 서버에 전달되지 않고
브라우저에게 해당 지점으로 이동할 수 있도록 함5개의 응답 그룹
- Informational responsese(100-199)
- Successful responses(200-299)
- Redirection messages(300-399)
- Client error responses(400-499)
- Server error responses(500-599)
그동안 서버가 응답(자원을 표현)했던 것 = 지금까지 Django 서버는 사용자에게 페이지(html)만 응답하고 있었음
JSON
타입으로 응답하는 것을 권장python으로 json 응답받기 |
---|
Django에서 Restful API 서버를 쉽게 구축할 수 있도록 도와주는 오픈소스 라이브러리
여러 시스템에서 활용하기 위해 데이터 구조나 객체 상태를 나중에 재구성할 수 있는 포맷(리스트/ 딕셔너리 등)으로 변환하는 과정
Postman
- API를 구축하고 사용하기 위한 플랫폼
- API를 빠르게 만들 수 있는 여러 도구 및 기능을 제공
화면구성
게시글 데이터 목록 조회하기 |
---|
게시글 데이터 목록을 제공하는 ArticleListSerializer 정의 |
serializers.py의 위치나 파일명은 자유롭게 작성 가능 |
url 및 view 함수 작성 |
---|
api_view decorator
- DRF view 함수에서는 필수로 작성되며 view 함수를 실행하기 전 HTTP 메서드를 확인
- 기본적으로 GET 메서드만 허용되며 다른 메서드 요청에 대해서는 405 Method Not Allowed로 응답
- DRF view 함수가 응답해야 하는 HTTP 메서드 목록을 작성
단일 게시글 데이터 조회하기 |
---|
게시글 데이터 목록을 제공하는 ArticleSerializer 정의 |
url 및 view 함수 작성 |
---|
응답확인 |
---|
article_list view 함수 구조 변경(method에 따른 분기처리) |
---|
POST응답 확인 & 새로 생성된 게시글 데이터 확인 |
---|
views.py |
DELETE http://127.0.0.1:8000/api/v1/articles/23/ 응답확인 |