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 https //www back4app com/docs/get started/new parse app 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 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 pod install 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 npm install g apollo kemudian, jalankan perintah berikut dengan mengganti nilai untuk header dengan appid dan masterkey anda apollo client endpoint= https //parseapi back4app com/graphql header="x parse application id yourappidhere" header="x parse master key yourmasterkeyhere" 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 script path="${pods root}/apollo/scripts" cd "${srcroot}/${target name}" "${script path}"/check and run apollo cli sh codegen target=swift includes= / / graphql localschemafile="schema json" api swift jika anda menggunakan xcode 11 beta, tambahkan skrip ini sebagai gantinya \# pergi ke root build dan kembali ke tempat spm menyimpan framework apollo ios yang sudah dicheck out cd "${build root}" cd " / /sourcepackages/checkouts/apollo ios/scripts" apollo script path="$(pwd)" if \[ z "${apollo script path}" ]; then echo "error tidak dapat menemukan skrip cli di paket spm yang sudah anda check out; pastikan untuk menambahkan framework ke proyek anda " exit 1 fi cd "${srcroot}/${target name}" "${apollo script path}"/check and run apollo cli sh codegen target=swift includes= / / graphql localschemafile="schema json" api swift 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 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 mkdir /library/developer/xcode/plug ins /library/developer/xcode/specifications 4\ salin graphql ideplugin ke /library/developer/xcode/plug ins cp r graphql ideplugin /library/developer/xcode/plug ins 5\ salin graphql xclangspec ke /library/developer/xcode/specifications cp r graphql xclangspec /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