私の蒸気ウェブサービスからGoogle Places APIに簡単なリクエストを送信しようとしています。蒸気クライアントで苦労しています
これは私のコントローラは次のようになります。それはそれと同じくらい簡単であるべき
import Vapor
import HTTP
import VaporPostgreSQL
final class MainController {
var currentDroplet: Droplet!
func addRoutes(drop: Droplet) {
currentDroplet = drop
drop.get("places",String.self, String.self, handler: getNearbyPlaces)
}
func getNearbyPlaces(request: Request, lat: String, long: String) throws -> ResponseRepresentable {
let googleAPIKey = "MY_KEY"
let googlePlacesBaseURL = "https://maps.googleapis.com/maps/api/place/nearbysearch"
let url = googlePlacesBaseURL + "/json?location=\(lat),\(long)&radius=500&types=food&key=" + googleAPIKey
print(url)
let apiResponse = try drop.client.get(url)
print(apiResponse)
return apiResponse.json != nil ? apiResponse.json! : "Something went bad"
}
}
、しかし私はそれを呼び出すときに、要求が長時間掛かって保持し、それがいることを500 注意を返します。コンソールに印刷されたurlは、ブラウザで直接正常に動作します。 エラーをキャッチしてデバッグする便利な方法を見つけられませんでした。
は、URLでエンコードされていますか? – muescha
コンソールにログされたURLは、ブラウザでうまく動作します。 –
ブラウザーは独自のURLを適切な形式に変換します。プログラムを呼び出すと、おそらくそれをエンコードする必要があります。 – muescha