我想为应用使用配方API。我已经注册并获得了API的密钥。但是,我不知道将我的密钥放在URL的哪个位置,因此我可以将其粘贴到浏览器中并获取JSON响应。 这是示例Curl请求
$response = Unirest\Request::get("https://spoonacular-recipe-food-nutrition-v1.p.mashape.com/recipes/findByIngredients?fillIngredients=false&ingredients=apples%2Cflour%2Csugar&limitLicense=false&number=5&ranking=1",
array(
"X-Mashape-Key" => "KEY",
"X-Mashape-Host" => "spoonacular-recipe-food-nutrition-v1.p.mashape.com"
)
);
这是我搜索网址时得到的结果:
{
"message":"Missing Mashape application key. Go to http:\/\/docs.mashape.com\/api-keys to learn how to get your API application key."
}
如果有人知道如何使用密钥创建完整的URL或以其他方式在Swift中获取Json响应,那将非常感激。 谢谢
答案 0 :(得分:1)
如果您想在Swift中调用API,我建议您使用此处的Alamofire库:https://github.com/Alamofire/Alamofire。
要对API调用进行身份验证,您必须按照他们的文档了解他们希望您进行身份验证的方式。某些服务没有身份验证,而其他服务使用一次性使用令牌,而有些服务使用通过请求标头传递的API密钥。看起来这个API调用需要密钥和主机通过请求标头传递。使用Alamofire,请求看起来像这样:
let headers: HTTPHeaders = [
"X-Mashape-Key": "KEY",
"X-Mashape-Host": "spoonacular-recipe-food-nutrition-v1.p.mashape.com"
]
Alamofire.request("https://spoonacular-recipe-food-nutrition-v1.p.mashape.com/recipes/findByIngredients?fillIngredients=false&ingredients=apples%2Cflour%2Csugar&limitLicense=false&number=5&ranking=1", headers: headers).responseJSON { response in
debugPrint(response)
}
如果您想在不预先在应用程序中编写请求的情况下测试API调用,我建议您下载名为Postman的应用程序。这将允许您测试API并查看他们的回复,以便在您的swift应用程序中为您提供帮助。