2014-07-23 3 views
2

Swagger를 Django Rest Framework API에 통합하려고합니다. 관련 패키지를 설치하고 Github 페이지의 빠른 시작 가이드를 따랐습니다. 그래도 문제가 있습니다. Swagger는보기의 문서 주석 만 표시합니다.Django Rest Swagger with APIView

기본적으로 주어진 URL을 해석하는 하나의 APIView가 있습니다 (예 : "/ first/second /"또는 "/ a/b/c/d/e/f/g" ")는 aa-db-query를 만들고 url의 끝에있는 요청 유형과 자원에 따라 데이터를 반환하는 올바른 serializer를 선택합니다.

Swagger의 작동을 올바르게 이해했다면 serializer를 사용하여 예제 json 입력 및 기타 관련 데이터를 Ui에 표시합니다. 명시 적으로 사용하는 serializer를 명시 할 방법이 있습니까?

마지막으로 여기에 API 뷰의 GET- 코드를 사용하여 시리얼 라이저 사용법을 보여줍니다. 서로 다른 두 개의 시리얼이 당신이 볼 수 있듯이 :

isValid = self.isValidUrl(request.path) 
    if not isValid: 
     return Response("Error: The url is empty.") 

    url = self.trimTheUrl(request.path) 
    print url 

    try: 
     target = models.APINode.objects.get(uniquePath=url) 
     perm = IsOwner() 
     perm.has_object_permission(request, self, target) 
     #check is the APINode collection or item: 
     if target.objectType == "item": 
      #return JSON data of the materialItem: 
      serializer = ProductSerializer(target.materialItem) 
      return Response(serializer.data) 
     else: 
      #find objects in this collection 
      children = models.APINode.objects.filter(parentPath=target.uniquePath) 
      serializer = APINodeSerializer(children, many=True) 
      return Response(serializer.data) 

    except models.APINode.DoesNotExist: 
     return Response("404: No such collection or materialItem.") 

어떤 경우는 API가 많은 N-깊은 경로와 파일 시스템과 같은 모음 & 자원 구조를 나타내는 가치가있다.

답변

0

나는 serializer라는 태그를 사용하여이 작업을 수행하는 방법을 발견했습니다. 예는 serializer: UserDocSerializer입니다. 그것은 당신이 같은 수 :

""" 
Your View 
--- 
... All about parameters and types ... 
serializer: UserDocSerializer 
... 

나는 항상 나에게 뷰에서 seriallizer의 수입을 만들려고한다는 것입니다 가지고 문제를, 그래서 같은 views.py이를 선언했다 :

class UserDocSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = UserProfile 
     fields = ('username', 'image') 

표시하려는 필드가 표시됩니다.

관련 문제