(我正在使用最新的django/python/DRF)
我的API端点是内部应用程序。他们不匹配1比1与我在系统中的模型。我看到了两种将视图用于API的技术。
第一种方法使用方法,就像我使用的那样:
@api_view(['GET', 'POST'])
@authentication_classes([JSONWebTokenAuthentication])
def myApiEndPoint(request):
"""
This text is the description for this API.
"""
if request.method == 'GET':
return Response("ok get", status=status.HTTP_200_OK)
elif request.method == 'POST':
return Response("ok post", status=status.HTTP_200_OK)
第二种使用类定义,如DRF文档。
class UserViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows users to be viewed or edited.
"""
queryset = User.objects.all().order_by('-date_joined')
serializer_class = UserSerializer
class GroupViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows groups to be viewed or edited.
"""
queryset = Group.objects.all()
serializer_class = GroupSerializer
第二条路似乎更整洁、更有序。但是:
谢谢
发布于 2017-06-02 16:15:17
Serializer
(而不是ModelSerializer
)创建序列化程序,并将您的自定义验证放在那里ModelViewSet
作为基类,而是使用viewsets.GenericViewSet
for GET
,创建名为list
的方法,为POST
创建名为create
的方法,以获取更多信息,检查视图集文档
只需在视图集中定义这些var:(还可以检查身份验证和权限的文档
class UserViewSet(GenericViewSet):
permission_classes = [AllowAny, ] # or any other permission class
authentication_classes = [JSONWebTokenAuthentication, ] # or any other authentication class
https://stackoverflow.com/questions/44331013
复制相似问题