Использование возвратных вейлов из колбы в приложении ios - PullRequest
0 голосов
/ 06 января 2019

Я пытался использовать колбу в качестве бэкэнда для своего приложения iOs. В настоящее время он, кажется, работает, и серверная часть размещена на heroku. Бэкэнд колбы выглядит примерно так:

@app.route('/get_token', methods=['POST'])
def create_token():
    token = make_token()
    return token

Я могу запустить эту функцию и подтвердить, что она работает, используя такой фрагмент кода, как swift (используя alamofire):

let url = "https://my-backend.herokuapp.com/get_token"
Alamofire.request(url, method: .post, parameters: nil, encoding: JSONEncoding.default)

И это нормально. Но теперь я хочу сделать что-то (в частности, сохранить токен из колбы) с возвращаемым значением из колбы. Но я не совсем понимаю, как это сделать. Есть предложения?

1 Ответ

0 голосов
/ 06 января 2019

Я бы возвратил ответ JSON от Flask, и тогда вы легко сможете проанализировать этот объект JSON, как захотите в своем приложении для iOS. Flask имеет встроенный метод jsonify , который упрощает создание ответов JSON.

Ваш ответ будет выглядеть как return jsonify(token=token)

Разбор JSON с Alamofire:

Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default)
            .responseJSON { response in
                print(response)
            //to get status code
            if let status = response.response?.statusCode {
                switch(status){
                    case 201:
                        print("example success")
                    default:
                        print("error with response status: \(status)")
                }
            }
            //to get JSON return value
            if let result = response.result.value {
                let JSON = result as! NSDictionary
                print(JSON)
            }

        }

Источник: https://stackoverflow.com/a/33022923/6685140

...