如何使用postman测试Django REST API?

时间:2018-06-06 08:05:21

标签: django api django-rest-framework postman

我需要使用邮递员测试REST API。 API是使用Django REST Framework构建的。只有登录用户才能访问API。我无法找到如何使用邮递员发送登录凭据。提前谢谢。

class ApiMemberGroupNameList(views.APIView):
    permission_classes = (
        permissions.IsAuthenticated,
        RequiredOrgPermission,
        RequiredOrgStaffMemberPermission)

    def get(self, request, **kwargs):
        pk = kwargs.get('pk')
        hash = kwargs.get('hash')
        member_obj = get_object_or_404(Member.objects.filter(org__hash=hash, pk=pk))
        return Response(GroupListSerializer(member_obj.groups.all(), many=True).data)

2 个答案:

答案 0 :(得分:3)

您可以在POSTMAN中使用Basic Auth。请参阅此屏幕截图:

enter image description here

您可以在POSTMAN控制台中更改HTTP MethodsURLsData Payload(在Body标签下)等

<强> UPDATE-1

在您发表评论后,我试图重新创建问题。我做的是:

  1. 创建了一个视图

    from rest_framework.views import APIView
    from rest_framework.permissions import IsAuthenticated
    from rest_framework.response import Response
    
    class MySampleView(APIView):
        permission_classes = (IsAuthenticated,)
    
    def get(self, request):
        return Response(data={"status": True})
    
  2. 已添加到urls.py

    urlpatterns = [
                  url(r'^mysampleview/$', MySampleView.as_view())
                  ]
    
  3. 我的POSTMAN回复如下:

    Authorization Screenshot

    Header Screenshot

    我的结论

    您可能输入错误的凭据或其他内容。我建议您打开一个新的POSTMAN选项卡并重复该过程,同时尝试使用已在POSTMAN中使用的相同凭据登录Django管理员

答案 1 :(得分:2)

如果要使用基本身份验证来测试Django REST API,则必须在Django REST Framework设置中允许它:

'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.BasicAuthentication',
...