📝Query String 검색하는 API 만들기
포스트맨에서 Query String할 키와 밸류값을 Query Params에 입력한다
(http://localhost:5000/movie/search?keyword=The&offset=0&limit=25)
검색할 값(keyword)과 페이징할 값(offset, limit)을 입력해줬다
코드를 작성할때 클라이언트에서 쿼리스트링으로 보내는 데이터는 request.args에 들어있다
변수로 저장해서 쿼리문에 사용하기
※ 주의할점 MySQL Workbench 쿼리문 작성할때 컬럼은 n이다에만 %s 사용하고 그외는 변수를 더해준다
class MovieSearchResource(Resource) :
def get(self) :
keyword = request.args.get('keyword')
offset = request.args.get('offset')
limit = request.args.get('limit')
try :
connection = get_connection()
query = '''select m.id, m.title, ifnull(count(r.movie_id),0) as cnt,
ifnull(round(avg(r.rating),1),0) as avg
from movie m
left join rating r
on m.id = r.movie_id
where m.title like '%''' + keyword + '''%'
group by m.id
limit ''' + offset + ''' , ''' + limit + ''' ; '''
cursor = connection.cursor(dictionary= True)
cursor.execute(query, )
result_list = cursor.fetchall()
i = 0
for row in result_list :
result_list[i]['avg'] = float(row['avg'])
i = i + 1
cursor.close()
connection.close()
except Error as e :
print(e)
cursor.close()
connection.close()
return {"error" : str(e)}, 500
return {"result" : "success", "items" : result_list, "count" : len(result_list)}, 200
궈리문 검색 기능 사용할때(like) 참고하기 + fulltext
'Restful API' 카테고리의 다른 글
[Restful API] S3에 저장한 이미지를 객체 탐지하는 API만들기(Rekognition) (0) | 2023.01.12 |
---|---|
[Restful API] 이미지 S3에 업로드하는 API 만들기 (0) | 2023.01.12 |
[Restful API] 회원, 비회원 둘 다 동작하는 API 만들기 (1) | 2023.01.10 |
[Restful API] 실시간으로 추천하는 API 만들기 (0) | 2023.01.10 |
[Restful API] DB에 저장된 정보를 가져와서 작업한 후에 추천하는 API 만들기 (0) | 2023.01.09 |
댓글