iOS
Integrasi Apollo iOS GraphQL Client ke Proyek Swift Anda
22 mnt
pendahuluan di bagian ini anda akan belajar cara menginstal apollo ios client pada proyek swift anda dan mengquery data dari back4app menggunakannya prasyarat untuk menyelesaikan quickstart ini, anda perlu xcode sebuah aplikasi yang dibuat di back4app ikuti tutorial aplikasi parse baru untuk belajar cara membuat aplikasi parse di back4app sebuah kelas dengan beberapa data yang disimpan (sehingga anda dapat mengambilnya) 1 mendapatkan apollo client ke dalam proyek xcode anda cara termudah untuk mengintegrasikan apollo ios client adalah dengan menggunakan cocoapods https //cocoapods org/ untuk mengintegrasikannya, ikuti langkah langkah berikut buat proyek xcode anda dan di folder yang sama dengan file xcodeproj anda, buat file baru bernama podfile edit file podfile dan tambahkan kode berikut, mengganti string yourprojectnamehere dengan nama proyek anda \# uncomment the next line to define a global platform for your project platform \ ios, '12 0' target 'yourprojectnamehere' do \# comment the next line if you're not using swift and don't want to use dynamic frameworks use frameworks! \# pods for conferenceplanner pod 'apollo' end simpan file dan buka terminal pergi ke folder itu dan ketik ketika instalasi selesai, anda harus memiliki file baru dengan format xcworkspace buka file itu dengan xcode 2 ambil skema anda anda memerlukan file bernama schema json yang berisi skema untuk endpoint graphql anda ada dua cara bagi anda untuk mengambil skema lengkap anda menggunakan back4app graphql console menggunakan apollo kami akan membahas keduanya pilih yang anda suka 2 1 ambil skema anda dengan back4app graphql console pergi ke graphql console untuk aplikasi yang ingin anda ambil skemanya dan di sebelah kanan di bawah tab skema, klik tombol unduh 2 2 ambil skema anda dengan apollo jika anda lebih suka menggunakan apollo, pertama anda harus menginstal versi desktop dengan mengetik kemudian, jalankan perintah berikut dengan mengganti nilai untuk header dengan appid dan masterkey anda ini akan menghasilkan file aschema json sebagai output 3 tambahkan file schema json anda ke proyek tambahkan file schema json yang anda unduh atau ambil ke proyek anda di direktori root ini adalah folder yang sama di mana file appdelegate swift anda berada 4 buat file graphql anda anda sekarang dapat membuat file graphql anda dengan file dan mutasi anda file tersebut harus memiliki ekstensi graphql dan berisi setidaknya satu kueri atau mutasi agar apollo dapat membuat kode swift darinya konvensi yang berguna adalah mengelompokkan kueri, mutasi, atau fragmen dengan kode swift yang menggunakannya dengan membuat \<name> graphql di samping \<name> swift jika anda tidak memiliki file graphql yang sudah ada di pohon file anda, buat kueri yang sangat sederhana dan tambahkan ke file graphql di pohon file anda sehingga ketika anda menjalankan langkah pembuatan kode, itu benar benar menemukan sesuatu jika tidak, anda akan mendapatkan kesalahan tidak ada operasi atau fragmen yang ditemukan untuk menghasilkan kode berikut adalah kueri sederhana sebagai contoh, yang mengembalikan pengguna parse 1 query findallusers{ 2 objects{ 3 find user{ 4 count 5 results{ 6 username 7 } 8 } 9 } 10 } tambahkan file itu ke direktori target anda pada level yang sama dengan file schema json anda 5 tambahkan langkah build generasi kode anda dapat memanggil apollo sebagai bagian dari proses build xcode, yang akan mengambil dan memperbarui file schema json secara otomatis sehingga kelas anda akan selalu mencerminkan perubahan yang anda buat dengan memanggil skrip pembungkus check and run apollo cli sh pembungkus memeriksa apakah versi apollo yang terpasang di sistem anda kompatibel dengan versi framework di proyek anda jika anda tidak memeriksa itu, anda berpotensi menghasilkan kode yang tidak kompatibel dengan kode runtime di framework langkah langkahnya adalah di tab pengaturan build phases target aplikasi anda, klik ikon + dan pilih new run script phase di run script yang dibuat, ubah namanya menjadi generate apollo graphql api seret skrip run baru ini tepat di atas compile sources dalam daftar build phases anda sehingga dieksekusi sebelum kode anda dikompilasi tambahkan yang berikut ini ke run script jika anda menggunakan xcode 11 beta, tambahkan skrip ini sebagai gantinya 6 bangun dan tambahkan file api anda ke target bangun proyek anda dan file bernama api swift harus dibuat di direktori target anda seret file api swift yang dihasilkan ke target anda dan pastikan untuk menghapus centang pada kotak centang “salin file jika diperlukan” pastikan anda telah memeriksa semua target yang perlu disertakan file api 7 konfigurasi klien sekarang di viewcontroller swift anda, buat konfigurasi apollo anda dan ubah nilai appid dan clientkey anda 1 let apollo apolloclient = { 2 let configuration = urlsessionconfiguration default 3 configuration httpadditionalheaders = \[ 4 "x parse application id" "yourappidhere", 5 "x parse client key" "yourclientkeyhere" 6 ] 7 8 let url = url(string "https //parseapi back4app com/graphql")! 9 10 return apolloclient( 11 networktransport httpnetworktransport( 12 url url, 13 configuration configuration 14 ) 15 ) 16 }() 8 konfigurasi klien di viewdidload anda, panggil kueri graphql anda dari klien apollo 1 apollo fetch(query findallusersquery()) { result in 2 guard let data = try? result get() data else { return } 3 print(data objects? finduser results\[0] username) 4 } jika anda memiliki pengguna di kelas pengguna anda, yang pertama (indeks 0) harus diambil langkah opsional dapatkan penyorotan sintaks anda dapat memiliki penyorotan sintaks graphql di xcode jika anda mau untuk mencapainya kloning repositori xcode apollo https //github com/apollostack/xcode apollo ke komputer anda tutup xcode jika saat ini sedang berjalan anda mungkin perlu membuat folder ini di dalam /library/developer/xcode 4\ salin graphql ideplugin ke /library/developer/xcode/plug ins 5\ salin graphql xclangspec ke /library/developer/xcode/specifications anda mungkin menerima peringatan saat pertama kali anda memulai xcode setelah menginstal add on ini setelah anda setuju untuk memuat plugin, anda tidak akan lagi melihat peringatan ini