iOS
Integração do Apollo GraphQL com Swift usando CocoaPods no iOS
22 min
introdução nesta seção, você aprenderá como instalar o apollo ios client em seu projeto swift e consultar dados do back4app usando o pré requisitos para completar este guia rápido, você precisa xcode um aplicativo criado no back4app siga o tutorial de novo aplicativo parse para aprender como criar um aplicativo parse no back4app uma classe com alguns dados armazenados (para que você possa recuperá los) 1 integrando o apollo client ao seu projeto xcode a maneira mais fácil de integrar o apollo ios client é usando cocoapods https //cocoapods org/ para integrá lo, siga estas etapas crie seu projeto xcode e, na mesma pasta do seu arquivo xcodeproj, crie um novo arquivo chamado podfile edite o arquivo podfile e adicione o seguinte código, trocando a string yourprojectnamehere pelo nome do seu projeto \# 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 salve o arquivo e abra um terminal vá para essa pasta e digite quando a instalação terminar, você deve ter um novo arquivo com o formato xcworkspace abra esse arquivo com o xcode 2 recupere seus esquemas você precisa de um arquivo chamado schema json contendo os esquemas para seu endpoint graphql existem duas maneiras de você recuperar seu esquema completo usando o console graphql do back4app usando apollo vamos discutir ambos escolha o que você mais gosta 2 1 recupere seus esquemas com o console graphql do back4app vá para o seu console graphql para o app do qual você deseja recuperar o esquema e, à direita, na aba esquema, clique no botão baixar 2 2 recupere seus esquemas com apollo se você preferir usar apollo, primeiro você deve instalar a versão desktop digitando em seguida, execute o seguinte comando substituindo os valores dos cabeçalhos pelo seu appid e masterkey isso gerará um arquivo schema json como saída 3 adicione seu arquivo schema json ao projeto adicione o arquivo schema json que você baixou ou recuperou ao seu projeto no diretório raiz esta é a mesma pasta onde seu arquivo appdelegate swift está localizado 4 crie seus arquivos graphql agora você pode criar seus arquivos graphql com seus arquivos e mutações esses arquivos devem ter a extensão graphql e conter pelo menos uma consulta ou mutação para que o apollo possa criar o código swift a partir deles uma convenção útil é colocar consultas, mutações ou fragmentos junto com o código swift que os utiliza, criando \<nome> graphql ao lado de \<nome> swift se você não tiver arquivos graphql pré existentes em sua árvore de arquivos, crie uma consulta muito simples e adicione a a um arquivo graphql em sua árvore de arquivos para que, quando você executar a etapa de geração de código, ele realmente encontre algo se não, você receberá o erro nenhuma operação ou fragmentos encontrados para gerar código aqui está uma consulta simples que, como exemplo, retorna usuários do parse 1 query findallusers{ 2 objects{ 3 find user{ 4 count 5 results{ 6 username 7 } 8 } 9 } 10 } adicione esse arquivo ao seu diretório target no mesmo nível em que seu arquivo schema json está 5 adicione uma etapa de construção para geração de código você pode invocar o apollo como parte do processo de construção do xcode, que irá recuperar e atualizar o arquivo schema json automaticamente, para que suas classes sempre reflitam quaisquer alterações que você faça chamando o script wrapper check and run apollo cli sh o wrapper verifica se a versão do apollo instalada em seu sistema é compatível com a versão do framework em seu projeto se você não verificar isso, poderá gerar código que é incompatível com o código de tempo de execução no framework os passos são na aba de configurações de fases de construção do seu alvo de aplicativo, clique no ícone + e escolha nova fase de script de execução no script de execução criado, mude seu nome para gerar api apollo graphql arraste este novo script de execução logo acima de compilar fontes na sua lista de fases de construção para que ele seja executado antes que seu código seja compilado adicione o seguinte ao script de execução se você estiver usando o xcode 11 beta, adicione este script em vez disso 6 compile e adicione seu arquivo api ao alvo compile seu projeto e um arquivo chamado api swift deve ser criado no diretório do seu alvo arraste o arquivo api swift gerado para o seu alvo e certifique se de desmarcar a caixa "copiar arquivos se necessário" certifique se de que você verificou todos os alvos nos quais o arquivo api precisa ser incluído 7 configure o cliente agora no seu viewcontroller swift, crie sua configuração apollo e altere os valores de appid e clientkey 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 configure o cliente no seu viewdidload, chame sua consulta graphql do cliente 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 } se você tiver algum usuário na sua classe user, o primeiro (índice 0) deve ser recuperado passo opcional obter realce de sintaxe você pode ter realce de sintaxe graphql no xcode se desejar para conseguir isso clone o repositório xcode apollo https //github com/apollostack/xcode apollo para o seu computador feche o xcode se ele estiver em execução você pode precisar criar essas pastas dentro de /library/developer/xcode 4\ copie graphql ideplugin para /library/developer/xcode/plug ins 5\ copie graphql xclangspec para /library/developer/xcode/specifications você pode receber um aviso na primeira vez que iniciar o xcode após instalar esses complementos uma vez que você concorde em carregar o plugin, você não verá mais esse aviso