不知道正在阅读文章的小伙伴在开发过程中有没有遇到这样的问题,产品的需求出来以后,前端后端各自领任务,约定接口规范,撸起袖子紧锣密鼓的打算大干一场。
A few weeks later...
产品调整了需求,当初设计的接口已经无法满足新需求的使用要求,此时,作为前端小哥的你,可能这样操作:和后端小哥商量,希望能在原有接口中新增字段,问题迎刃而解。
但如果这个接口是多端在使用,而新增的字段在其中一个用户端里边,可能就会变成一组无用的数据。
使用GraphQL
query race($teamA: String!) {
race(teamA: $teamA): {
id,
type,
teamA,
teamB,
time
}
}
返回值:
{
"data": {
"race": {
"id": 123,
"type": "CSGO",
"teamA": "Astralis",
"teamB": "Navi",
"time": "2019-06-22 11:40:00"
}
}
}
当需求有变动的时候,比如增加字段
query race($teamA: String!) {
race(teamA: $teamA): {
id,
type,
teamA,
teamB,
time,
# 新字段
supportedQuizzes
}
}
返回值:
{
"data": {
"race": {
"id": 123,
"type": "CSGO",
"teamA": "Astralis",
"teamB": "Navi",
"time": "2019-06-22 11:40:00",
// 新字段
"supportedQuizzes": ["Pistal Round", "Winner"]
}
}
}
小结
由于灵活多变的前端业务,每次都让后端同学帮忙改接口并不一定是好的选择。有兴趣的同学不妨深入了解一下GraphQL,前端能够更加灵活方便的得到想要的数据,后端也能更专注于服务等领域,而不需要把太多精力分散在CRUD上。