首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

激荡二十年:HTTP API 的变迁

在 web 世界不为人知的角落,Erlang 的 webmachine 尽着最大的努力来确保 API 的处理符合 HTTP 协议。...2020:我的第三次 API 工具的探索 如果说 goldrin 是一个被外部环境倒逼出来的急中生智,quenya,更多像是我在无拘无束的条件下,把我之前做过的诸多系统回溯一下,集大成的找乐子项目。...另一个有着同样思路,但采取了不同路径的产品 Hasura,今年早些时候 C 轮融了一亿美金。与 supabase 背后的 postgREST 不同的是,Hasura 把宝押在了 GraphQL。...Hasura 试图回答一个问题:有没有可能把 GraphQL 的 query 一对一转换成 SQL 语句?...,我可以使用一个 parser combinator(比如 Rust 下的 nom)来解析它,这样就可以清晰地知道,字段名如何重命名,以及字段来自于哪张表(如果有 JOIN 的话)。

1.7K30
您找到你想要的搜索结果了吗?
是的
没有找到

写在2021: 值得关注学习的前端框架和工具库

你可能听过它不好的一面:笨重、学习成本高、断崖式更新…, 可能也听过它好的一面:不需要再自己挑选路由、状态管理方案、请求库等、依赖注入很香适合后端程序员快速上手…。...GraphQURL,Hasura(介绍见下面的Engine部分)出品,没使用过。 GraphQL-Zeus,小而美的GraphQL客户端,集成了Code-Generator能力。...它提供的GraphiQL就是我上面提到的增强版本: Hasura还提供了前面说的GraphQURL作为client,hasura-code-gen来从Hasura服务生成TS代码,所以基本上可以用Hasura...也可以关注我的微信公众号:【前端留学生】 每天更新最新技术文章干货。...Document,BlitzJS中的接收的是后端方法,其中会直接db.entity.create()这样去写数据库)。

2.8K10

写在 2021: 值得关注学习的前端框架和工具库

很简单,如果学有余力,学就是了。如果学不动了,就完全没必要盯着前沿方向学(虽然前端网红圈不是吹的),不要被“2021前端必备!再不学你就out了!” “学会这些,立刻月薪30k!”...你可能听过它不好的一面:笨重、学习成本高、断崖式更新..., 可能也听过它好的一面:不需要再自己挑选路由、状态管理方案、请求库等、依赖注入很香适合后端程序员快速上手...。...GraphQURL[40],Hasura(介绍见下面的Engine部分)出品,没使用过。 GraphQL-Zeus[41],小而美的GraphQL客户端,集成了Code-Generator能力。...Hasura还提供了前面说的GraphQURL作为client,hasura-code-gen来从Hasura服务生成TS代码,所以基本上可以用Hasura的生态做为一套方案了,包括我也有看到过一些创业公司就在使用...Document,BlitzJS中的接收的是后端方法,其中会直接db.entity.create()这样去写数据库)。

4.2K10

GraphQL是API的未来,但它并非银弹

这减少了服务器和客户端之间发送的数据量,甚至比 GraphQL 更少,因为你没有发送查询负载,如果响应仍然有效,服务器发回一个 304 响应(未修改)。...GraphQL 已经持久化了查询,但是这种实现会带来额外的开销。如果你没有使用像 Relay 这样的客户端(它默认会持久化查询),必须自己完成,或者使用一些第三方库来实现。...我无法认同这个结论,不能仅仅因为 GraphQL 模式不支持本地版本控制就说问题消失了。如果不为 REST API 设置版本,也会取得同样的效果。...GraphQL 服务器可以自由地使用它期望的任何类型进行响应。如果你发送一个查询,服务器的响应可以不符合自省响应中的 GraphQL 模式。以 Apollo Federation 为例。...如果没有 Apollo 提供的所有工具,你认为 GraphQL 会变成现在这样吗?会议呢?GraphQL 峰会?Hasura 在线会议?Dgraph Lab 举办的 GraphQL in Space?

2K10

干货 | 携程基于 GraphQL 的前端 BFF 服务开发实践

此外,code 和 message 字段的类型都带 !,表示非。而 data 字段的类型不带 !,即可能为。这就带来一个问题,code 为 1 表达存在错误时,data 也可能不为。...服务端需要保证 code 和 data 的出现关系,一定满足 code 为 1 时,data 为,以及 code 为 0 时,data 不为。...由于非类型的字段不能为字段错误被传播到父字段中处理。如果字段可能是null,那么它就会解析为null,否则,如果它是一个非null类型,字段错误会进一步传播到它的父字段。...: ProductInfo }` 如上,对一个节点提供一个 json 的查询字段,它将返回原节点全部内容,同时框架里对最终的 response 进行处理,如果碰到了 json 字段对其解构,同时删除...GQL 内会分别执行上述 resolve,如果是调用 API,调用是并行的。

2.5K20

GraphQL详解

如果能这样做的话,那么后端程序猿小哥可能要开心死了,前端妹子也不用那么苦口婆心地劝说后端小哥哥了。 所以GraphQL隆重出世了!那么问题来了!...如果没有那么多成本来支撑改造,那么就不需要改造! 只有当原有需求发生变化,需要对原功能进行修改时,就可以换成GraphQL了。...比如: 列表:Type 非:Type! 列表非:Type! 非列表,列表内容类型非:Type!! 在描述数据模型(模式Schema)时,就可以对字段施加限制条件。...输入类型(Input Types):更新数据时有用,与常规对象只有关键字修饰不一样,常规对象时 type 修饰,输入类型是 input 修饰。...Hasura:一个 BaaS(后端即服务),允许你在 Postgres 上创建数据表、定义权限并使用 GraphQL 接口查询和操作。

2.5K00

我为什么要放弃RESTful,选择拥抱GraphQL

如果能这样做的话,那么后端程序猿小哥可能要开心死了,前端妹子也不用那么苦口婆心地劝说后端小哥哥了。 所以GraphQL隆重出世了!那么问题来了!...如果没有那么多成本来支撑改造,那么就不需要改造! 只有当原有需求发生变化,需要对原功能进行修改时,就可以换成GraphQL了。...比如: 列表:[Type] 非:Type! 列表非:[Type]! 非列表,列表内容类型非:[Type!]! 在描述数据模型(模式Schema)时,就可以对字段施加限制条件。...输入类型(Input Types):更新数据时有用,与常规对象只有关键字修饰不一样,常规对象时 type 修饰,输入类型是 input 修饰。...Hasura:一个 BaaS(后端即服务),允许你在 Postgres 上创建数据表、定义权限并使用 GraphQL 接口查询和操作。

2.4K40

GraphQL

如果能这样做的话,那么后端程序猿小哥可能要开心死了,前端妹子也不用那么苦口婆心地劝说后端小哥哥了。 所以GraphQL隆重出世了!那么问题来了!...如果没有那么多成本来支撑改造,那么就不需要改造! 只有当原有需求发生变化,需要对原功能进行修改时,就可以换成GraphQL了。...比如: 列表:Type 非:Type! 列表非:Type! 非列表,列表内容类型非:Type!! 在描述数据模型(模式Schema)时,就可以对字段施加限制条件。...输入类型(Input Types):更新数据时有用,与常规对象只有关键字修饰不一样,常规对象时 type 修饰,输入类型是 input 修饰。...Hasura:一个 BaaS(后端即服务),允许你在 Postgres 上创建数据表、定义权限并使用 GraphQL 接口查询和操作。

2.6K65

为什么我劝你放弃了Restful API?

如果能这样做的话,那么后端程序猿小哥可能要开心死了,前端妹子也不用那么苦口婆心地劝说后端小哥哥了。 所以GraphQL隆重出世了!...如果没有那么多成本来支撑改造,那么就不需要改造! 只有当原有需求发生变化,需要对原功能进行修改时,就可以换成GraphQL了。...比如: 列表:[Type] 非:Type! 列表非:[Type]! 非列表,列表内容类型非:[Type!]! 在描述数据模型(模式Schema)时,就可以对字段施加限制条件。...输入类型(Input Types):更新数据时有用,与常规对象只有关键字修饰不一样,常规对象时 type 修饰,输入类型是 input 修饰。...Hasura:一个 BaaS(后端即服务),允许你在 Postgres 上创建数据表、定义权限并使用 GraphQL 接口查询和操作。

2.7K20

2020年AWS,Microsoft和Google应进行的云收购

Algolia为公司处理所有这些问题,并提供一组简单的安全规则-例如速率限制和限制可以搜索和/或返回的字段-与单独的API密钥相关联。...如果微软收购Netlify并领导其无服务器策略和更高级别的服务,它将立即拥有与AWS和Google Cloud Platform(GCP)更具可比性的服务。...Google云端:Hasura 谷歌在虚拟机和容器方面基本上与Azure和AWS相提并论,但过去五年来其行业领先的高级云服务的发展却停滞不前。 Firebase是一个很好的例子。...因此,Google应该购买Hasura,它在Firebase落后的地方正拥有惊人的发展速度:对关系数据库,GraphQL的支持以及在开发者反馈的帮助下快速迭代的机会。...拥有的Hasura可以为Firebase注入大量生命。 当然,Firebase也被收购。因此,如果过去是序幕,那么红旗比比皆是。但是,对于GCP而言,收购Hasura值得冒险。

6.5K20

GraphQL 基础实践

同时在 GraphQL 中,标量字段是粒度最细的一个数据单元了,同时作为返回 JSON 响应数据中的最后一个字段。也就是说,如果是一个 Object,还必须选择至少其中的一个字段。 ?...在 GraphQL 中,只有一个 API 端点,同样也接受 GET 和 POST 动词,如要操作 mutation 使用 POST 请求。...如果感叹号跟在 field 的后面,表示返回该 type 的数据时,此字段一定不为。 通过上面的类型定义,可以看到 GraphQL 中的类型系统起到了很重要的角色。...同样的,如果传出的 ratings 数据类型不为 String,也同样会抛出类型不符的错误。 列表(List)、枚举类型(Enum) ?...两种写法的含义是不同的:前者表示 movies字段始终返回不可为但Movie元素可以为。后者表示movies中返回的 Movie 元素不能为,但 movies字段的返回是可以为的。

12.8K20

2021年11个最佳无代码低代码后端开发利器

它包含诸如计算字段的功能。它们是特殊的字段类型,Airtable处理数值的计算。重复性任务的自动化可以节省大量的时间并减少错误率。...诸如读取、写入、更新、排序和过滤数据等操作,都可以使用。 虽然Airtable可能不是一个传统的后端,但它让团队和个人都能自由组织任务。...◆ Hasura 最适合那些正在寻找基于GraphQL的快速解决方案并希望向后兼容REST的专家。 Hasura是一个即时的实时GraphQL APIs引擎。...它使你的数据可以通过GraphQL API或REST API即时访问。这有助于你专注于建立和运送应用程序的速度。 Hasura使用Postgres连接连接到数据库。它可以横向扩展并保持状态以缓存查询。...如果你正在寻找一个具有成本效益的解决方案,你可以选择共享,或者选择专用于扩展和大型应用程序。 定价 Back4app拥有最多的价格选项,比这个名单上的任何其他后端平台都多。

12.5K20

GraphQL 从入门到实践

GraphQL 服务接受到了一个 query,那么这个 query 将从 Root Query 开始查找,找到对象类型(Object Type)时使用它的解析函数 Resolver 来获取内容,如果返回的是对象类型继续使用解析函数获取内容...,如果返回的是标量类型(Scalar Type)结束获取,直到找到最后一个标量类型。...age: Int } 这个 User 对象类型有两个字段,name 字段是一个为 String 的非标量,age 字段为一个 Int 的可标量。...} } Hello world 总是如此愉快,下面我们来进行稍微复杂一点的查询 查询入口 users 查找所有用户列表,返回一个不可但长度可以为 0 的数组,数组中如果有元素,必须为 User 类型...;另一个查询入口 user 接受一个字符串,查找 ID 为这个字符串的用户,并返回一个 User 类型的可字段 # src/schema.graphql # Query 入口 type Query

2.5K31

我们在未来会怎样构建Web应用程序?

其次,如果我们要做乐观更新,我们就会遇到争用情况。想象一下,你运行一个乐观更新,将一个形状的颜色设置为blue,同时一个陈旧(stale)更新跑来了,说它是red。 1....GraphQL+Hasura GraphQL 是一种很好的方法来声明性地定义你想要从客户端获取的数据。...像 Hasura 这样的服务可以使用像 Postgres 这样的数据库,并做一些聪明的事情,比如给你一个 GraphQL API。 Hasura 很适合读取数据。...今天 GraphQL 工具的一大问题是它们的原型制作速度。你往往需要多个不同的库和构建步骤。他们在数据写入方面做得也没那么好。乐观更新不会自动发生——你必须自己处理它。  ...Datalog 很难实现响应性 SQL 和 Datalog 都存在的一个大问题是,它们很难基于一些新的更改来确定哪些查询需要更新。 我不认为这是不可能解决的障碍。Hasura 可以做轮询,而且可扩展。

10K30

GraphQL 的入门指南

GraphQL API 添加字段和类型而无需影响现有查询,老旧字段可以废弃,从工具中隐藏。...这是对 GraphQL 的基本介绍——为什么它这么强大,为什么它现在这么流行。如果你想了解更多关于它的信息,可以访问 GraphQL网站 学习。...如果你想了解有关 GraphQL Playground的更多信息,请单击此处。 模式(Schema) GraphQL 有自己的语言类型,用于编写模式。...感叹号表示字段不可为,这意味着每个字段必须在每个查询中返回一些数据。 User 中唯一可以为字段是 age。...当服务器中发生更新时,服务器将运行订阅中指定的 GraphQL 查询,并向客户机发送一个新更新的结果。 在这篇文章中,我们不打算讨论订阅,但是如果你想阅读更多关于订阅的信息,请单击这里。

2K30
领券