GraphQL iOS Swift5.1詳細(xì)配置

萬里長征行軍難,千山萬水只等閑。

GraphQL 是一個用于 API 的查詢語言,是一個使用基于類型系統(tǒng)來執(zhí)行查詢的服務(wù)端運(yùn)行時(類型系統(tǒng)由你的數(shù)據(jù)定義)。GraphQL 并沒有和任何特定數(shù)據(jù)庫或者存儲引擎綁定,而是依靠你現(xiàn)有的代碼和數(shù)據(jù)支撐。
GraphQL 規(guī)范特意忽略了一些面向 API 的重要問題,例如處理網(wǎng)絡(luò)、授權(quán)和分頁。這并不意味著在使用 GraphQL 時沒有針對這些問題的解決方案,只是因為它們并非 GraphQL 定義中的一部分,可代以工程上通行的做法來實現(xiàn)。

那么使用GraphQL有什么好處呢?

1.一次查詢,搞定需求,在單個請求中獲取許多資源
2.版本之間不會相互影響,版本兼容so easy
3.數(shù)據(jù)請求無冗余、無冗余、無冗余
4.客戶端自定義數(shù)據(jù)格式,這也算無冗余的原因
5.描述類型系統(tǒng)的可能性
6.功能強(qiáng)大的開發(fā)人員工具
7.不同平臺可以獲取不同數(shù)據(jù),不會相互影響

缺點(diǎn)呢

1.缺乏適當(dāng)?shù)闹虚g件結(jié)構(gòu)
2.學(xué)習(xí)成本及接手成本

作為一個小兵就要不考慮用不用的問題啦,下面我們介紹一下iOS 的Apollo框架吧。

1、配置電腦環(huán)境,方便之后的生成API
安裝 node
brew install node
安裝apollo
npm install -g apollo

2、cocoapods 導(dǎo)入最新版Apollo(0.16.0)
3、自動生成API控制
在項目TARGETS目錄下的Build Phases欄目下新建運(yùn)行環(huán)境
點(diǎn)擊+號,選擇 New Run Script Phase.
之后修改名稱為 Generate Apollo GraphQL API 。

1.png

??:一定要將Generate Apollo GraphQL API 環(huán)境拉到Complie Sources 上面


3.png

然后在Shell命令行里面輸入如下代碼

APOLLO_FRAMEWORK_PATH="$(eval find         
$FRAMEWORK_SEARCH_PATHS -name "Apollo.framework" -maxdepth 1)"

if [ -z "$APOLLO_FRAMEWORK_PATH" ]; then
echo "error: Couldn't find Apollo.framework in 
FRAMEWORK_SEARCH_PATHS; make sure to add the 
framework to your project."
exit 1
fi

cd "${SRCROOT}/${TARGET_NAME}"
$APOLLO_FRAMEWORK_PATH/check-and-run-apollo-cli.sh 
codegen:generate --queries="$(find . -name '*.graphql')" -- 
passthroughCustomScalars --schema=schema.json API.swift


SCRIPT_PATH="${PODS_ROOT}/Apollo/scripts"
cd "${SRCROOT}/${TARGET_NAME}"
"${SCRIPT_PATH}"/run-bundled-codegen.sh 
codegen:generate --target=swift --includes=./**/*.graphql -- 
localSchemaFile="schema.json" API.swift
2.png

這樣會自動生成API.swift

再進(jìn)行Schema 下載

apollo schema:download --endpoint=http://localhost/graphql schema.json

輸入服務(wù)器的endpoint進(jìn)行下載schema.json文件
然后把schema.json和*.graphql文件導(dǎo)入項目根目錄,盡量在文件比較多的地方。
.graphql里面存放的則是你的查詢語句,Xcode會根據(jù)查詢語句自動生成查詢代碼,方便調(diào)用。


4.png

然后運(yùn)行項目即可,在項目目錄里面找到生成的API.swift拉到項目中,每次運(yùn)行都會更新API里面的內(nèi)容。所以不要修改API里面的內(nèi)容,因為修改也沒用,每次都會更新。在項目調(diào)試階段打開自動生成,在項目調(diào)試完成后可以關(guān)閉。這樣就不會更新API了。

到此,項目的簡單配置就完成了。
下一篇我們說一下使用情況。
最后附上官方的教程.以及大家心儀的配置demo地址.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容