안녕하세요. 이번에 새로 django그룹에 가입한 이계원입니다. 잘 부탁드립니다. 현재

 
Gyewon Lee

안녕하세요. 이번에 새로 django그룹에 가입한 이계원입니다. 잘 부탁드립니다.

현재 저는 django-rest-framework의 APIView를 이용하여 어플리케이션의 백엔드에서 동작하는 API서버를 만들고 있습니다. 이때 같은 APIView Class내에서 Method마다 다른 URL형식을 받게 하려면 어떻게 해야하는지 궁금합니다.

예를 들어, DELETE동작의 경우에는 URL뒤에 리소스 아이디를 받게 하는데(api/[resource_id] 형식으로), POST요청에서는 (api/ )형식으로만 받게 하고 싶을때 이를 깔끔하게 해결하는 방법이 있나요?

Method별로 따로 url.py를 연결하자니 rest-framework의 기능을 잘 못살리는 것 같고, None으로 초기화 한 후에 각 메소드 별로 에러처리를 해주자니 코드가 더러워질 뿐만 아니라 일관성이 사라지는 문제가 있네요.

감사합니다.

  • Han Cold Kim

    url(r’^api/(?P[^/]+)?$’, api)

    이 방식은 어떠세요?

    박영록

    django-rest-framework를 잘 모르지만, 메서드의 파라미터 개수에 따라 urls에 다르게 등록해주도록 하면 되지 않을까 싶네요.

    Juyoung Lee

    django-rest-framework의 경우 viewset이라는 개념을 도입해 자동으로 urlpattern 빌드해주는 걸로 알고있는데 …

    Juyoung Lee

    http://www.django-rest-framework.org/api-guide/viewsets 이부분에서 viewset의 정의와 router라는 개념 보시면 될꺼같아요.

    user라는 리소스 관련 viewset을 만든후 router에 등록하면 uesrs/ users url 각각 만들어 주는 걸로 알고있어요~

    Gyewon Lee

    아 라우터를 활용하면 되는군요! ㅋㅋ 감사합니다

Advertisements