对GraphQL有透彻的理解
SQL的风格真是很GraphQL呢,但要要轻松理解它,就需要对REST、微服务和无服务器等周边知识和术语有很多(感觉如此)GraphQL的了解。以下是阅读文章并动手实践后,“完全理解了”的记录。
首先开始学习
请阅读以下内容。
GraphQL引入了一种新的范式转变。
简单来说,通过从API中排除特定的用例和上下文,提高了客户端和服务器端的灵活性。
通过API不具备特定的用例和上下文,
客户端可以最大限地利用可用信息构建灵活的用户界面,为用户提供最大的价值。
服务器端可以根据后端需求构建领域逻辑。
实际上,如果使用GraphQL,REST就变成了一个具有上下文的API(在提供之前需要固定响应表示)。这一点让我们意识到,它如何将客户端的UI表示和后端架构固定下来。
总之,有这么好的事情。
请阅读以下内容。
如果你从来没有使用过GraphQL,我建议你在https://github.com/APIs-guru/graphql-apis上选择2、3个API尝试一下,这样你就能大致了解它的作用了。(我个人喜欢宝可梦、星战和Spotify。) 当你尝试使用GraphQL的API时,你会发现你可以使用它而不需要关心API的后端实现方式。
概念图是这个
根据推荐
由于以下教程非常简单,令人想要尝试。
是的。可以快速搭建环境。
步骤 (bù
使用npm安装并保存graphql: npm install –save graphql
mkdir src
touch src/index.js
使用npm安装apollo-server
const { ApolloServer } = require('apollo-server');
// 1
const typeDefs = `
type Query {
info: String!
}
`
// 2
const resolvers = {
Query: {
info: () => `API でありますまいか`
}
}
// 3
const server = new ApolloServer({
typeDefs,
resolvers,
})
server
.listen()
.then(({ url }) =>
console.log(`Server is running on ${url}`)
);
为了更容易理解,在这里加入了日语。
使用 `node src/index.js` 来启动。
尝试在 http://localhost:4000/ 上发送以下内容。
query {
info
}
这个结果能得到吗?这就是GraphQL的起源。
实际应用案例 ànlì)
以下的查询可以在 https://graphql-weather-api.herokuapp.com/ 上执行。
# Write your query or mutation here
query {
getCityByName(name: "Tokyo") {
id
name
country
coord {
lon
lat
}
weather {
summary {
title
description
icon
}
temperature {
actual
feelsLike
min
max
}
wind {
speed
deg
}
clouds {
all
visibility
humidity
}
timestamp
}
}
}
成果。
(or)
結局。
東京今天(2021/4/14)的氛圍像是被蒙上了一層迷霧。
"weather": {
"summary": {
"title": "Mist",
"description": "mist",
"icon": "50d"
},
总结
尝试是学习的最佳方式。在阅读以上引用的文章后,我能完全理解并记下了。
追加备注
如果我对你有所帮助,那就是我的幸运。