原来如此简单,被一篇 iOS生成schema.json 的文档误导了
步骤
1. 安装node
2. 按照命令操作即可
npm install -g apollo-codegen
如果报权限错误,则需要如下命令:
jake@bogon:~$ sudo chown -R $USER /usr/local
Password:
Sorry, try again.
Password:
chown: /usr/local: Operation not permitted
jake@bogon:~$ npm install -g apollo-codegen
/usr/local/bin/apollo-codegen -> /usr/local/lib/node_modules/apollo-codegen/lib/cli.js
+ apollo-codegen@0.19.1
added 115 packages in 37.343s
╭─────────────────────────────────────╮
│ │
│ Update available 5.6.0 → 6.0.0 │
│ Run npm i -g npm to update │
│ │
╰─────────────────────────────────────╯
生成 schema.json 文件(需要服务器地址),命令:
apollo-codegen download-schema 服务器地址 --output schema.json
即可在当前目录下看到生成的文件
将其拷贝到项目根目录下的graph包里(自己动手创建包)即可使用
更进一步(2018.12.28)
忽然发现无法下载schema文件了,通过上述命令:
error: Error while fetching introspection query result: invalid json response body at http://***/graphql/ reason: Unexpected token < in JSON at position 0
原来为了安全,后端加了一个 token 校验,
所以需要在命令上添加 header 参数,传token,就像graphql的客户端一样。
所以最终的命令如下
apollo-codegen download-schema http://***/graphql/ --output schema.json --header "Authorization":"bearer $token”
还有很多参数可加,如下: