Angliška antraštė daug geriau atspindi visą įrašo esmę. Šis įrašas bus labiau kaip trumpas apmokymas, kaip iškviesti Google App Engine Endpoin’us iš iOS programos parašytos su Swift programavimo kalba. Visas įrašas remiasi šiuo dokumentu: https://cloud.google.com/appengine/docs/java/endpoints/calling-from-ios, tačiau vykdant žingsnius iš to dokumento teko susidurti su keletu problemų, kurių sprendimus čia ir paminėsiu.

1. Atpažinimo dokumentas (discovery doc)

Pradžioje reikia susigeneruoti atpažinimo dokumentą (discovery doc), keliaujam į App Engine projektą ir direktorijoje, kurioje yra pom.xml failas ir įvykdom komandą

mvn appengine:endpoints_get_discovery_doc

sugeneruotas failas bus išsaugotas šioje direktorijoje: /[your-path]/[your-projectdir]/target/generated-sources/appengine-endpoints/WEB-INF/[project]-v1-rest.discovery

2. Google APIs Client biblioteka

Kai atpažinimo dokumentas paruoštas galime pradėti importavimo procesą, iš pradžių reikia nusikopijuoti „Google APIs Client Library for Objective-C For REST” biblioteką:

git clone https://github.com/google/google-api-objectivec-client-for-rest.git

Kai klientas nukopijuotas – pasileidžiam Xcode ir atidarom ServiceGenerator projektą, kuris randasi google-api-objectivec-client-for-rest/Source/Tools/ServiceGenerator/ServiceGenerator.xcodeproj. Šis projektas turi tik vieną užduotį (target) pavadinimu „ServiceGenerator”, tad ją ir įvykdom (Product > Build)

Problema
Kompiliuojant rodoma klaida, kad ‘/[path]/google-api-objectivec-client/Deps/gtm-session-fetcher/Source/GTMSessionFetcherService.m’ failas nerastas. Pasirodo, reikia ir kito projekto, kad jį būtų galima sukompiliuoti. Trūkstama biblioteka randasi čia: https://github.com/google/gtm-session-fetcher. Kopijuojam ją į klaidoje nurodyta direktoriją:

git clone https://github.com/google/gtm-session-fetcher ./google-api-objectivec-client-for-rest/Deps/gtm-session-fetcher/

ir leidžiam vykdymą dar kartą.

3. Kliento bibliotekos generavimas

Kai Google APIs Client biblioteka sugeneruota reikia sukurti kliento biblioteką pasinaudojant šia programa, tai daroma įvykdant komandą, kurią būtina paredaguoti pagal savo aplinką:

/Users/[user-name]/Library/Developer/Xcode/DerivedData/ServiceGenerator-[abc]/Build/Products/Debug/ServiceGenerator ~/[project-dir]/target/generated-sources/appengine-endpoints/WEB-INF/project-v1-rest.discovery --outputDir ~/API

4. Kliento bibliotekos integravimas į iOS projektą (Swift)

Sukuriam naują grupę ir į ją patalpinam sugeneruotus failus.

Atsidarom „Podfile” ir pridedam:
pod ‘GoogleAPIClientForREST’, ‘~> 1.0.2’
pod ‘GTMOAuth2’, ‘~> 1.1.0’

vykdom:

pod install

Sukuriam [projectname]-Bridging-Header.h failą ir jame pridedam #import „GTLR[name].h  ([name] – sugeneruotos bibliotekos pavadinimas)

Štai ir viskas