Я новичок в Google Cloud Platform и Flutter и хочу вызвать функцию из своего проекта flutter. Этот GCF вычисляет расстояние Левенштейна между двумя строками и реализуется следующим образом:
from flask import jsonify, abort
from Levenshtein import distance as levenshtein_distance, ratio, editops as string_ops_needed
def json_abort(status_code, message):
data = {
'error': {
'code': status_code,
'message': message
}
}
response = jsonify(data)
response.status_code = status_code
abort(response)
def word_distance(request, decoded_token = None):
"""HTTP Cloud Function.
Args:
request (flask.Request): The request object.
<http://flask.pocoo.org/docs/1.0/api/#flask.Request>
Returns:
The response text, or any set of values that can be turned into a
Response object using `make_response`
<http://flask.pocoo.org/docs/1.0/api/#flask.Flask.make_response>.
"""
request_json = request.get_json(silent=True)
'''request_args = request.args'''
if request_json and "candidate_string" in request_json and "correct_string" in request_json:
candidate_string=request_json["candidate_string"]
correct_string=request_json["correct_string"]
distance=levenshtein_distance(candidate_string,correct_string)
response = jsonify(distance=distance, status_code=200)
return response
else:
json_abort(400, message="Missing params")
Когда я пытаюсь вызвать его из флаттера, со следующим кодом Флаттер возвращает Исключение произошло. PlatformException ( PlatformException (functionsError, функция Cloud завершилась с ошибкой., {Сообщение: Ответ недействителен JSON объект., Подробности: null, код: INTERNAL}))
final HttpsCallable callable = CloudFunctions.instance
.getHttpsCallable(functionName: 'word_distance')
..timeout = const Duration(seconds: 10);
dynamic result = await callable.call(
<String, dynamic>{
"candidate_string": candidateString,
"correct_string": correctString
},
);
Когда я проверяю функцию в GCF с {"candidate_string": "helo worlt", "correct_string": "hello world"}
Возвращает результат {"distance":2,"status_code":200}
Есть идеи о том, почему это происходит и как решить эту проблему? Я нашел этот пост , но он не показывает конкретный c пример того, как продолжить.