본문 바로가기
Restful API

[Restful API] Query String(Query Parameter) 페이징 처리하는 방법

by dong_su 2023. 12. 8.

-> Postman에서 URL의 query string 부분에 변수명=값&변수명=값 형식으로 쓰거나, Params 탭에 Key엔 변수명 Value엔 값을 넣어준다. 두 가지 방식 다 가능.

 

    @jwt_required()
    def get(self) :

        user_id = get_jwt_identity()

        # 쿼리스트링(쿼리 파라미터)에 있는 데이터를 받아온다.
        offset = request.args.get("offset")
        limit = request.args.get("limit")

        try : 
            connection = get_connection()

            query = '''
                    select id, title, date, content 
                    from summary
                    where userId = %s
                    order by date asc
                    limit ''' + str(offset) + ''', ''' + str(limit) + ''';
                    '''
            record = (user_id, )

            cursor = connection.cursor(dictionary=True)
            cursor.execute(query, record)
            memo_list = cursor.fetchall()

            i = 0
            for row in memo_list :
                memo_list[i]["date"] = row["date"].isoformat()
                i = i+1

            cursor.close()
            connection.close()

        except Error as e :
            print(e)
            cursor.close()
            connection.close()
            return {"result" : "fail", "error" : str(e)}, 500

        if len(memo_list) == 0 :
            return {"error" : "메모가 존재하지 않습니다."}, 400

        return {"result" : "success", "items" : memo_list, "count" : len(memo_list)}, 200

-> 해당 query string 데이터를 request.args.get(변수명)으로 받아온다.

-> 그 후 query문 안에 문자열로 바꿔서 넣으면 된다.

 

주의) 클라이언트가 request할 때, Body에 있는 데이터만 %s로 처리하고 나머지는 변수로 처리한다.