我发现 GraphQL 非常有趣,即使对于像我这样刚起步的新手来说也是一项强大的技术。您可能已经听过它的宣传:它允许您在需要时请求所需的确切数据(可能是在组件级别),它会以可爱的 JSON 数据形式提供给您使用。
我看到它被用作现代网站构建的一部分,无处不在。总体感觉是,“我想在前端做任何我想做的事,这实际上也允许更多后端选择。” 并且“任何事”指的是前端,通常意味着一个花哨的 SPA 风格的 JavaScript 驱动的应用或一个静态网站生成器风格的应用。
以下是一些如今随处可见的文章的快速概述。我将用技术栈部分代替实际的文章标题。
- Contentful > GraphQL
- Contentful > GraphQL > Gatsby
- 另一个 Contentful > GraphQL > Gatsby
- CraftCMS > GraphQL
- Craft CMS > GraphQL > 无头网站
- CraftCMS > GraphQL > Vue
- GraphQL > 11ty
- WordPress > GraphQL
- WordPress.com > GraphQL > Gatsby
- WordPress.org > GraphQL > Gatsby
- WordPress > GraphQL > Vue
- Drupal > GraphQL
- GraphCMS > GraphQL
- DatoCMS > GraphQL
- DatoCMS > GraphQL > Vue/Nuxt
- CosmicJS > GraphQL
- GravCMS > Gatsby > GraphQL
- Strapi > GraphQL > Gatsby
- Netlify CMS > Gatsby > GraphQL
- Gentics Mesh > GraphQL
- Relax > GraphQL (可能已停止维护?)
- Jekyll > GraphQL
- TakeShape > GraphQL
GraphQL 绝对属于新潮类别,但正如过去的一切,现在又重新流行起来。看看 按示例查询,一种来自 1970 年代的语言
.....Name: Bob
..Address:
.....City:
....State: TX
..Zipcode:
生成的 SQL
SELECT * FROM Contacts WHERE Name='Bob' AND State='TX';
难以置信您忘记了我们美妙绝伦的 WordPress GraphQL API https://www.wpgraphql.com & https://github.com/wp-graphql/wp-graphql。 :)
对于大型项目,GraphQL 看起来很有意义,因为您可能有多个数据库、服务等。但是对于小型项目,使用小型团队和单个数据库,其他系统似乎更有意义。比如直接编写 SQL。不幸的是,目前没有足够好的工具来直接编写 SQL。基本上,可以这样做。在您的客户端代码中编写 SQL,它实际上不会转到您的前端代码。您所做的是在类或函数中生成参数和返回类型,这些类或函数将调用后端代码。等等,您如何在代码中不包含 SQL?在构建/生成代码时,您将 SQL 发送到数据库,并生成一个 GUID 作为唯一标识符。因此,当您在后端调用该代码时,您所做的只是发送 GUID。如果更改 SQL,则生成新的 GUID。
SQL 是一种非常强大且优雅的语言,您可以在相对较短的代码量中表达复杂的思想(除非您使用 MySQL,它仍然不支持窗口函数 - 真的吗,在这个时代?)。我只是希望有支持这种工作的库。我认为它可以与 SQL Server 和 PostgreSQL 一起使用。MySQL 太糟糕了,无法与它一起使用。