RESTful API에서 ?(물음표) 처리

1Jui.ce·2023년 2월 12일
0

새로운 프로젝트 johna-sick 개발간 딥러닝 모델을 API를 통해서 결과를 얻을려고 했는데,,,

flask 를 통해서 BackEnd 를 구성하고, GET을 통해서 json 데이터를 얻을려고 했다.

@api.route('/predict/<string:comment>')
class Predict(Resource):
    def get(slef, comment):
        return {"predict" : ModelToSentence(comment).sentiment_predict()}
    
if __name__ == "__main__":
    app.run(debug=True, host="127.0.0.1", port=5000)

매우 간단한 코드! ModelToSentece는 과거의 나를 아주 칭찬하고 싶은 class 이다. 머신러닝 모델 예측을 위해서 입력값을 데이터셋의 형태로 바꾸어주는 고마운 친구
자세한 내용은 Github : Language-Purifier 참조

Postman을 켜고 요청을 보냈는데,,

욕은 이번 프로젝트에서 자주 나옵니다. 욕을 걸러내는 모델이기때문에..
98퍼센트로 일반적인 댓글이라고 알려준다.. 이러면 안된다,,ㅠㅠ

결과는 ?(물음표) 때문에 params가 추가된 모습을 볼 수 있었다.. 생각해보니 보통 api을 호출할 때, ?(물음표)querystring으로 시작을 의미한다.

해결방법은 간단하다.

참고한 해결자료

물음표를 %3F 로 변환하면 끝난다.

잘 작동하는 모습을 볼 수 있다. (-98의 의미는 부정적인 댓글이라고 알려준다.)

이것을 Front에서 진행해도 될 것이고, Back에서 진행해도 될 것이다.

그외로 다음과 같은 규칙을 지켜야한다.

퍼센트 부호는 %25로 인코딩해야 합니다.
마침표는 %2E로 인코딩해야 합니다.
물음표는 %3F로 인코딩해야 합니다
profile
옷에 기름기 닦는 사람

0개의 댓글