tksrl0379/OutOfKiosk

Api.Ai API(Dialogflow가 iOS에서 돌아가게 해주는 API) 오류가 너무 많아서 개선 필요

tksrl0379 opened this issue · 0 comments

문제: 실제 Dialogflow 홈페이지에서 테스트한 결과와 CocoaPod의 Api.Ai 라이브러리(Dialogflow를 iOS에서 쉽게 적용시킬 수 있게 해주는 API) 의 실행결과가 너무 많이 다르고 커스터마이징이 너무 힘듦.

해결
-> Dialogflow API 에 의존하는 대신 Swift 코드에서 직접 HTTP request 구현하여 Dialogflow와 통신하도록 변경
Dialogflow에서 제공하는 모든 응답형태가 Json형태이기 때문에 NSDictionary형태로 변환하여 주고 받는 식으로 구현.

-> Api.Ai에서 제공하는 핸들러 함수들(Dialogflow로부터 응답 기다리기 등)은 escaping closure를 이용하여 동일하게 비동기적 특성을 유지하여 기존의 코드가 오류가 나지 않도록 수정함.

-> 커스터마이징이 쉬워져서 Api.Ai에서 요구했던 쓸데 없는 코드들을 지울 수 있게되어 오히려 코드가 더 간결해졌고 테스트 결과 이전에 일어났던 Api.Ai로 인한 이상한 응답 수신 버그들이 모두 사라짐.