GraphQL 学习笔记

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

1.png

将这个 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 变成这个样子:


2.png

3. 添加 schema file

打开终端,输入命令(将 SIMPLE_API_ENDPOINT 替换成GraphQL服务地址):

apollo-codegen download-schema __SIMPLE_API_ENDPOINT__ --output schema.json

然后,将生成文件拖到项目根目录。

总结一下:

. 首先是安装 apollo-codegen,这个用于生成 Swift 类型的命令行工具。

. 然后,在项目中添加了一个 build phase,这样在每次 build 的编译开始之前会调用 apollo-codegen

. apollo-codegen 会在项目根目录下查找一个 schema 文件。

你可能感兴趣的:(GraphQL 学习笔记)