iOSエンジニアのつぶやき

毎朝8:30に iOS 関連の技術について1つぶやいています。まれに釣りについてつぶやく可能性があります。

【Swift】Algolia からデータを取得する

みなさんこんにちは。最近個人アプリ開発に熱中しすぎるあまりネタが切れている Yamato です👷‍♀️ というわけで、本日はタイトルの通り Algolia からデータを取得する方法を紹介したいと思います。

結論

というわけで、下記がデータを取得するサンプルになります。SearchClientAlgoliaappIDapiKeyインスタンス化し、index で検索するインデックスを指定します。あとは、Querykeyword を設定すれば全文検索でデータを取得することができます。結果は 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.
    }
}

という感じで本日も以上になります🤺

参考

github.com

その他の記事

yamato8010.hatenablog.com

yamato8010.hatenablog.com

yamato8010.hatenablog.com