原來如此簡(jiǎn)單,被一篇 iOS生成schema.json 的文檔誤導(dǎo)了
步驟
1. 安裝node
2. 按照命令操作即可
npm install -g apollo-codegen
如果報(bào)權(quán)限錯(cuò)誤韩玩,則需要如下命令:
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 文件(需要服務(wù)器地址),命令:
apollo-codegen download-schema 服務(wù)器地址 --output schema.json
即可在當(dāng)前目錄下看到生成的文件
生成 schema.json
將其拷貝到項(xiàng)目根目錄下的graph包里(自己動(dòng)手創(chuàng)建包)即可使用
更進(jìn)一步(2018.12.28)
忽然發(fā)現(xiàn)無法下載schema文件了秫逝,通過上述命令:
error
error: Error while fetching introspection query result: invalid json response body at http://***/graphql/ reason: Unexpected token < in JSON at position 0
原來為了安全古程,后端加了一個(gè) token 校驗(yàn),
所以需要在命令上添加 header 參數(shù)屯伞,傳token腿箩,就像graphql的客戶端一樣。
like this
所以最終的命令如下
apollo-codegen download-schema http://***/graphql/ --output schema.json --header "Authorization":"bearer $token”
還有很多參數(shù)可加愕掏,如下:
參數(shù)