1. 介绍
(1)GraphQL 是一种描述如何请求数据的语法,通常用于客户端向服务器请求数据。
(2)GraphQL 层位于客户端和一个或多个数据源之间,按照你的指示接收客户端请求,然后获取必要的数据
2. 特点
(1)允许客户端精确指定所需数据
(2)可以更容易地从多个数据源聚合数据
3. 工具配合使用
通过Apollo在iOS中调用GraphOL,目前Apollo的功能包括:基于对数据的需求生成静态类型、对查询进行缓存和监听
4. 配置xcode(iOS开发工具)
1. 安装 apollo-codegen
applo-codegen 会搜索 Xcode 项目中的 GraphQL 代码以产生 Swift 类型。
打开终端,输入命令:
npm install -g apollo-codegen
2. 添加一个 build phase
在 Xcode 项目导航器中,选择GraphQLDemo
。选择 app target “GraphQLDemo”
。选择 Build Phases
标签,点击 +
号。
从下拉菜单中选择 New Run Script Phase
将这个
build phase
命名为 Generate Appolo GraphQL API
。将这个 build phase
拖到 Compile Sources
上。
将下面的脚本复制到带有“Type a script or drag a script file from your workspace to insert its path”
字样的文本框中:
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-codegen.sh generate $(find . -name '*.graphql') --schema schema.json --output API.swift
现在你的 Build Phases 变成这个样子:
3. 添加 schema file
打开终端,输入命令(将 SIMPLE_API_ENDPOINT 替换成GraphQL服务地址):
apollo-codegen download-schema __SIMPLE_API_ENDPOINT__ --output schema.json
然后,将生成文件拖到项目根目录。