Как написать POST-запрос, используя Alamofire и swift 4 для Clarifai API? - PullRequest
0 голосов
/ 31 мая 2018

Я относительно новичок в сети в Swift, и особенно в POST-запросах.Я прочитал документацию по API Clarifai и Alamofire, но не совсем понял, как написать рабочий запрос с использованием Alamofire.До сих пор я обнаружил следующий фрагмент кода, который создает структуру, соответствующую API-интерфейсу Clarifai, которая хочет, чтобы запрос был структурирован следующим образом:

curl -X POST \
  -H "Authorization: Key YOUR_API_KEY" \
 -H "Content-Type: application/json" \
-d @https://api.clarifai.com/v2/models/aaa03c23b3724a16a56b629203edc62c/outputs << FILEIN
 {
   "inputs": [
    {
    "data": {
      "image": {
        "base64": "$(base64 /home/user/image.png)"
      }
    }
  }
]
}
FILEIN

Это быстрый код, который я обнаружил, который достигает точночто:

struct ImageObj: Codable {let base64: String}

    struct DataObj: Codable {
        let image: ImageObj
    }

    struct InputObj: Codable {
        let data: DataObj
    }

    struct InputsContainerObj: Codable {
        let inputs: [InputObj]
    }

    let imageObj = ImageObj(base64: "abc123")
    let dataObj = DataObj(image: imageObj)
    let inputObj = InputObj(data: dataObj)
    let inputsContainerObj = InputsContainerObj(inputs: [inputObj])

    let encoder = JSONEncoder()
    do {
        let jsonData = try encoder.encode(inputsContainerObj)
        let jsonString = String(data: jsonData, encoding: .utf8)!

        print(jsonString) //{"inputs":[{"data":{"image":{"base64":"abc123"}}}]}
    } catch _ as NSError {

    }

Теперь я понятия не имею, что мне делать после этого.Я пытался написать запрос Alamofire, используя POST, но застрял на параметрах?а кодируемые?Для параметров я пробовал что-то вроде:

let parameters: Parameters = [
        "Authorization: Key":"f58fce8f9cac4a6a9e6d45a57223599a",
    "Content-Type":"application/json"]

Но я не знаю, правильно ли это.Если бы кто-нибудь мог помочь мне здесь, я был бы очень признателен!Всем хорошего дня!

...