コード例 #1
0
 def get(self, request):
     """
     获取接口列表
     :param request:
     :return:
     """
     try:
         page_size = int(request.GET.get("page_size", 20))
         page = int(request.GET.get("page", 1))
     except (TypeError, ValueError):
         return JsonResponse(code="999985", msg="page and page_size must be integer!")
     project_id = request.GET.get("project_id")
     first_group_id = request.GET.get("apiGroupLevelFirst_id")
     if not project_id:
         return JsonResponse(code="999996", msg="参数有误!")
     name = request.GET.get("name")
     if not project_id.isdecimal():
         return JsonResponse(code="999996", msg="参数有误!")
     try:
         pro_data = Project.objects.get(id=project_id)
     except ObjectDoesNotExist:
         return JsonResponse(code="999995", msg="项目不存在!")
     pro_data = ProjectSerializer(pro_data)
     if not pro_data.data["status"]:
         return JsonResponse(code="999985", msg="该项目已禁用")
     # 判断是否传分组id,则为所有接口列表
     if first_group_id:
         if not first_group_id.isdecimal():
             return JsonResponse(code="999996", msg="参数有误!")
         # 判断是否传name,这是根据name查找
         if name:
             obi = ApiInfo.objects.filter(project=project_id, name__contains=name, apiGroupLevelFirst=first_group_id,
                                          ).order_by("id")
         else:
             obi = ApiInfo.objects.filter(project=project_id, apiGroupLevelFirst=first_group_id,
                                          ).order_by("id")
     else:
         if name:
             obi = ApiInfo.objects.filter(project=project_id, name__contains=name).order_by("id")
         else:
             obi = ApiInfo.objects.filter(project=project_id).order_by("id")
     paginator = Paginator(obi, page_size)  # paginator对象
     total = paginator.num_pages  # 总页数
     try:
         obm = paginator.page(page)
     except PageNotAnInteger:
         obm = paginator.page(1)
     except EmptyPage:
         obm = paginator.page(paginator.num_pages)
     serialize = ApiInfoListSerializer(obm, many=True)
     return JsonResponse(data={"data": serialize.data,
                               "page": page,
                               "total": total
                               }, code="999999", msg="成功!")
コード例 #2
0
 def get(self, request):
     """
     获取接口列表
     :param request:
     :return:
     """
     try:
         page = int(request.GET.get("page", 1))
         project_id = request.GET.get("project_id")
         automation_id = request.GET.get("automation_id")
         group_id = request.GET.get("apiGroupLevelFirst_id")
         page_size = int(request.GET.get("page_size", 20)) if not group_id else 100
     except (TypeError, ValueError):
         return JsonResponse(code="999985", msg="page and page_size must be integer!")
     if not project_id:
         return JsonResponse(code="999996", msg="参数有误!")
     name = request.GET.get("name")
     type = request.GET.get("type")
     exclude = ast.literal_eval(request.GET.get("exclude","[]"))
     if not project_id.isdecimal():
         return JsonResponse(code="999996", msg="参数有误!")
     try:
         pro_data = Project.objects.get(id=project_id)
     except ObjectDoesNotExist:
         return JsonResponse(code="999995", msg="项目不存在!")
     pro_data = ProjectSerializer(pro_data)
     if not pro_data.data["status"]:
         return JsonResponse(code="999985", msg="该项目已禁用")
     # 判断是否传分组id,则为所有接口列表
     if automation_id:
         automation=Automation.objects.get(id=automation_id)
         obis=automation.apis.all().order_by("id")
     else:
         if group_id:
             if not group_id.isdecimal():
                 return JsonResponse(code="999996", msg="参数有误!")
             # 判断是否传name,这是根据name查找
             if name and type:
                 obis = ApiInfo.objects.filter(project=project_id, name__contains=name, type=type,apiGroupLevelFirst=group_id).exclude(id__in=exclude).order_by("-id")
             elif name:
                 obis = ApiInfo.objects.filter(project=project_id, name__contains=name, apiGroupLevelFirst=group_id).exclude(id__in=exclude).order_by("-id")
             elif type:
                 obis = ApiInfo.objects.filter(project=project_id, type=type,apiGroupLevelFirst=group_id).exclude(id__in=exclude).order_by("-id")
             else:
                 obis = ApiInfo.objects.filter(project=project_id, apiGroupLevelFirst=group_id).exclude(id__in=exclude).order_by("-id")
         else:
             if name and type:
                 obis = ApiInfo.objects.filter(Q(name__contains=name)|Q(apiGroupLevelFirst__name=name),project=project_id,type=type).exclude(id__in=exclude).order_by("-id")
             elif name:
                 obis = ApiInfo.objects.filter(Q(name__contains=name)|Q(apiGroupLevelFirst__name=name),project=project_id).exclude(id__in=exclude).order_by("-id")
             elif type:
                 obis = ApiInfo.objects.filter(project=project_id, type=type).exclude(id__in=exclude).order_by("-id")
             else:
                 obis = ApiInfo.objects.filter(project=project_id).exclude(id__in=exclude).order_by("-id")
     paginator = Paginator(obis, page_size)  # paginator对象
     pages = paginator.num_pages  # 总页数
     total = len(obis)
     try:
         obm = paginator.page(page)
     except PageNotAnInteger:
         obm = paginator.page(1)
     except EmptyPage:
         obm = paginator.page(paginator.num_pages)
     serialize = ApiInfoListSerializer(obm, many=True)
     return JsonResponse(data={"data": serialize.data,
                               "page": page,
                               "pages": pages,
                               "page_size":page_size,
                               "total": total
                               }, code="999999", msg="成功!")
コード例 #3
0
def api_list(request):
    """
    获取接口列表
    project_id 项目ID
    first_group_id 一级分组ID
    second_group_id 二级分组ID
    page_size  每一页条数
    page 页码
    name 接口名称
    :return:
    """
    try:
        page_size = int(request.GET.get("page_size", 20))
        page = int(request.GET.get("page", 1))
    except (TypeError, ValueError):
        return JsonResponse(code_msg=GlobalStatusCode.page_not_int())
    project_id = request.GET.get("project_id")
    first_group_id = request.GET.get("first_group_id")
    second_group_id = request.GET.get("second_group_id")
    name = request.GET.get("name")
    if not project_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    obj = Project.objects.filter(id=project_id)
    if obj:
        if first_group_id and second_group_id:
            if not first_group_id.isdecimal() or not second_group_id.isdecimal(
            ):
                return JsonResponse(
                    code_msg=GlobalStatusCode.parameter_wrong())
            if name:
                obi = ApiInfo.objects.filter(
                    project=project_id,
                    name__contains=name,
                    apiGroupLevelFirst=first_group_id,
                    apiGroupLevelSecond=second_group_id).order_by("id")
            else:
                obi = ApiInfo.objects.filter(
                    project=project_id,
                    apiGroupLevelFirst=first_group_id,
                    apiGroupLevelSecond=second_group_id).order_by("id")
        else:
            if name:
                obi = ApiInfo.objects.filter(
                    project=project_id, name__contains=name).order_by("id")
            else:
                obi = ApiInfo.objects.filter(project=project_id).order_by("id")
        paginator = Paginator(obi, page_size)  # paginator对象
        total = paginator.num_pages  # 总页数
        try:
            obm = paginator.page(page)
        except PageNotAnInteger:
            obm = paginator.page(1)
        except EmptyPage:
            obm = paginator.page(paginator.num_pages)
        serialize = ApiInfoListSerializer(obm, many=True)
        return JsonResponse(data={
            "data": serialize.data,
            "page": page,
            "total": total
        },
                            code_msg=GlobalStatusCode.success())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())