みなさんこんにちは。最近個人アプリ開発に熱中しすぎるあまりネタが切れている Yamato です👷♀️ というわけで、本日はタイトルの通り Algolia
からデータを取得する方法を紹介したいと思います。
結論
というわけで、下記がデータを取得するサンプルになります。SearchClient
を Algolia
の appID
と apiKey
でインスタンス化し、index
で検索するインデックスを指定します。あとは、Query
で keyword
を設定すれば全文検索でデータを取得することができます。結果は Swift の Result
型でコールバックされるので、それぞれよしなにハンドリングします。
let perPage = 20 let page = 1 let index = SearchClient(appID: "YOUR_ALGOLIA_APP_ID", apiKey: "YOUR_ALGOLIA_APIK_EY").index(withName: "dev_guide") let task = index.search(query: Query(keyword).set(\.hitsPerPage, to: perPage).set(\.page, to: page)) { result in switch result { case .success(let response): let guides = response.hits.compactMap { hit -> AlgoliaGuideData? in guard let object = hit.object.object(), let data = try? JSONSerialization.data(withJSONObject: object), let guide = try? JSONDecoder().decode(AlgoliaGuideData.self, from: data) else { return nil } return guide } // TODO: Handle data. case .failure(let error): // TODO: Handle error. } }
という感じで本日も以上になります🤺