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="成功!")
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="成功!")
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())