티스토리 뷰

반응형

Django - REST framework 구현하기 ver2.0

 

이번 포스팅에서는 REST framework 을 이용해서 todo list application 을 만들어볼 예정이다. 

 

0. Django REST Framework 공식 사이트 

 

https://www.django-rest-framework.org/

 

Home - Django REST framework

 

www.django-rest-framework.org

1. application setup 

- project setting : adding application 

- project urls : 

- model 

- view 

- url for app ( restapi ) 

 

- result 

request : http://127.0.0.1:8000/restapi/

 

2. REST framework settings. 

 

- install django-rest-framework

- add rest framework to project . 

 

3. REST framework 구현하기

 

- json 형식의 데이터를 요청하는 기본 api 구현 

 

데코레이터 @api_view 를 이용해서 rest api 를 구현하고, return 값을 json 형식의 데이터를 보내주면 된다.

서버를 구동하고 접속하면 다음과 같은 화면을 볼수 있다. 

4. 모델 데이터를 API 로 접속하기 

- serializers.py 생성하기 

모델 데이터를 rest api 로 만들기 위해서는 serializer 를 이용한다. serializers 파일을 생성하고 Task 모델에 대한 Serializer를 다음과 같이 구현한다. 실제 구현방식은 모델폼(ModelForm) 과 매우 유사하게 작성된다.  대상이 되는 모델과 필드를 지정해주면된다. 

 

- Task List view 만들기 

 

TaskSerializer를 이용해서 TaskList 뷰를 작성한다. 

 

- urls : taskList 뷰를 위한 urls 를 추가한다. 

 

- result

task-list 에 대한 요청, 현재 저장된 task 가 없어서 empty result 가 반환된다. 

 

- Task Create view 만들기

Create 는 사용자의 입력데이터를 POST 방식으로 전달받아서 모든 항목이 valid 하면 저장하고 다시 화면으로 출력시킨다. 

- urls for Task Create 

- example

click "POST" button

같은 방식으로 테스트를 위해서 추가로 데이터 입력한다. 

- create taskDetail view

DetailView 의 경우는 특정데이터의 정보를 url로 부터 받아서 상세데이터를 보여주는 기능을 제공한다. 

- url for detail view 

url 에 특정데이터에 대한 key(id) 정보를 포함해야한다. 

-  test result 

참고로, POST / GET API 개발시 유용한 툴 : POSTMAN 

url : https://www.postman.com/

 

Postman | The Collaboration Platform for API Development

Simplify workflows and create better APIs – faster – with Postman, a collaboration platform for API development.

www.postman.com

Task Update 기능 구현하기 

 

- taskUpdate view. 

- url for taskUpdate

- example 

 

TaskDelete 구현하기 

 

- delete view 

- delete url

- example 

 

여기까지해서 Todo List app을 위한 REST api(List, Create, Detail, Update, Delete) 가 모두 작성되었다. 이를 이용해서 다음 포스트에서는 화면 구성을 진행할 예정이다. 

 

끝... 

 

 

댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함