搜索
首页web前端js教程如何使用Hasura和PostgreSQL建立后端

How to Build Your Backend with Hasura and PostgreSQL

建立强大的后端通常涉及对CRUD操作,授权和业务逻辑的广泛编码,这是一个耗时的过程。 本文探讨了Hasura和PostgreSQL流线后端开发如何以最少的编码工作启动更快的应用程序。

> Hasura,一种开源GraphQl引擎,会自动从数据库架构中生成GraphQL和REST API。 它支持数据建模,实时查询,事件编程,基于角色的授权以及通过GraphQl Action的自定义业务逻辑执行。

强大的开源关系数据库

> PostgreSQL提供与Oracle和Microsoft SQL Server相当的企业级功能,这使其成为大型应用程序的可靠选择。 Netflix和Spotify等公司的使用强调了其功能。尽管Hasura支持其他数据库,但由于其可访问性和开源性质,本文侧重于PostgreSQL。 MySQL支持是计划的。

本指南重点介绍了Hasura为Web和移动应用程序构建可扩展后端的功能。 它还展示了通过SQL访问的PostgreSQL的功能如何执行复杂的计算和分析,从而减少了自定义服务器端代码的需求。

>

键优点:

  • 快速的后端开发: hasura的自动生成的API大大减少了编码时间。
  • PostgreSQL功率:利用PostgreSQL的高级功能(表继承,并发控制,JSON/空间数据类型),以增强数据完整性和性能。
  • 实时功能: Hasura的实时查询,事件编程和基于角色的授权创建高度响应的应用程序。 >
  • >易于部署:
  • >使用Docker进行本地开发或Hasura Cloud的部署,用于可扩展,安全,全球分布式应用程序,具有监视和缓存等功能。>
  • 全面的Web控制台:
  • 在Hasura的直觉Web控制台中管理数据建模,CRUD操作和复杂的查询。 与身份验证和文件存储提供商集成。
  • >简化的工作流程:
  • 利用Hasura的迁移工具和环境分期进行开发与生产之间的无缝过渡,支持CI/CD。
  • 为什么选择postgresql?

> PostgreSQL(例如PostgreSQL)等关系数据库提供的优势比其他数据库类型(包括模式建模,加入操作和酸性交易)具有优势,这对数据完整性至关重要。 PostgreSQL进一步擅长:

  • 表继承:有效的数据建模。
  • >
  • 高级并发控制:处理高量数据在多用户环境中有效写入。
  • 容忍和数据完整性:降低数据损坏风险。
  • >
  • 唯一的数据类型:支持JSON和空间数据类型,对各种应用程序有益。
  • > PostgreSQL还充当计算服务器,执行自定义功能和用于分析任务的触发器,从而消除了对单独的服务器端代码的需求。 这是使用以下方式实现的:

    >视图:
  • 简化复杂的查询。>
  • 函数和运算符:
  • >执行日期格式格式,模式匹配和算术操作。
  • >扩展:
  • 扩展了PostgreSQL的功能(例如,PostGis)。>
  • 程序语言:
  • 写入用户定义的功能和存储过程(例如,PL/PGSQL)。 hasura通过GraphQl公开了此PostgreSQL逻辑,使其很容易访问前端应用程序。

> postgresql示例:

How to Build Your Backend with Hasura and PostgreSQL

>>示例1(在线用户查看):>检索当前活动用户的视图:

  • >
  • >示例2(带有postgis的地理位置):
>在1000米半径内查找商店:
CREATE OR REPLACE VIEW "public"."online_users" AS
 SELECT users.id, users.last_seen
   FROM users
  WHERE (users.last_seen >= (now() - '00:00:30'::interval));
  • 什么是hasura?
Hasura是一种开源的实时GraphQl引擎,为您的数据库生成API。它的Web控制台允许:
SELECT id, name, address, geom
FROM Seattle_Starbucks
WHERE ST_DWithin(geom, ST_MakePoint(-122.325959,47.625138)::geography, 1000);

模型建模:

创建表格,定义关系并管理数据。

    crud操作:
  • 执行创建,读取,更新和删除操作。> 基于角色的访问控制:>
  • graphql/ret ensentpoint创建:为您的数据生成API。
  • sql execution:运行自定义SQL查询。
  • 操作和触发定义:自动化任务并处理事件。
  • 注意:Hasura需要与单独的身份验证提供商(例如Auth0,Firebase)和文件存储服务集成。 NHOST提供了一个集成的解决方案。
  • >启动hasura:>
    • > docker:建议用于本地开发,提供简单的设置和无速率限制。
    • >
    • > hasura cloud:用可扩展性,安全性和全局分布(包括监视和缓存功能)简化了部署。 有限制的免费层。

    How to Build Your Backend with Hasura and PostgreSQL

    > hasura功能(详细概述):>

    • 数据管理器: Visual模式设计器,用于创建表,定义关系和管理数据类型(包括JSON和自定义类型)。 How to Build Your Backend with Hasura and PostgreSQL
    • 授权:
    • 基于角色的访问控制,具有插入,选择,更新和删除操作的粒状权限。 How to Build Your Backend with Hasura and PostgreSQL
    • 查询:
    • 直接在控制台内执行各种GraphQl查询(简单,嵌套,聚合,过滤)。 How to Build Your Backend with Hasura and PostgreSQL
    • 突变:
    • 执行插入,UPSERT,更新和删除操作,并支持交易。
    • 订阅:
    • >使用WebSockets上的GraphQL订阅实现实时数据更新。
    • 远程模式:
    • 与数据和逻辑的第三方API集成 动作:
    • 使用任何编程语言通过Webhooks执行自定义业务逻辑。
    • 基于数据库事件(插入,更新,删除),>事件触发器:调用Webhooks。 支持手动调用。
    • 计划的触发器:通过webhooks定期运行任务(CRON)或一次(一次性)。
    • 迁移和环境:How to Build Your Backend with Hasura and PostgreSQL 使用数据库和hasura元数据的迁移文件管理模式更改,支持CI/CD Workflows。
    • >部署选项:

    > hasura云:最简单的生产部署。

    >
      >
    • 外部托管: Heroku,数字海洋,渲染,Azure,Kubernetes,AWS(更复杂)。 > nhost:全in-Baas解决方案,包括PostgreSQL,Hasura,Authentication和Storage。
    • >
    • 摘要:
    • Hasura和PostgreSQL为快速后端开发提供了强大的组合。 减少的编码工作,实时功能和鲁棒功能使其成为构建可扩展和可维护应用程序的引人注目的解决方案。 虽然在各个方面都不像某些替代方案那样丰富,但其易用性,专注于性能和开源性质是显着的优势。

      >

      常见问题(常见问题解答):(提供的常见问题解答已经全面且写得很好;不需要修改。)

以上是如何使用Hasura和PostgreSQL建立后端的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Python vs. JavaScript:您应该学到哪种语言?Python vs. JavaScript:您应该学到哪种语言?May 03, 2025 am 12:10 AM

选择Python还是JavaScript应基于职业发展、学习曲线和生态系统:1)职业发展:Python适合数据科学和后端开发,JavaScript适合前端和全栈开发。2)学习曲线:Python语法简洁,适合初学者;JavaScript语法灵活。3)生态系统:Python有丰富的科学计算库,JavaScript有强大的前端框架。

JavaScript框架:为现代网络开发提供动力JavaScript框架:为现代网络开发提供动力May 02, 2025 am 12:04 AM

JavaScript框架的强大之处在于简化开发、提升用户体验和应用性能。选择框架时应考虑:1.项目规模和复杂度,2.团队经验,3.生态系统和社区支持。

JavaScript,C和浏览器之间的关系JavaScript,C和浏览器之间的关系May 01, 2025 am 12:06 AM

引言我知道你可能会觉得奇怪,JavaScript、C 和浏览器之间到底有什么关系?它们之间看似毫无关联,但实际上,它们在现代网络开发中扮演着非常重要的角色。今天我们就来深入探讨一下这三者之间的紧密联系。通过这篇文章,你将了解到JavaScript如何在浏览器中运行,C 在浏览器引擎中的作用,以及它们如何共同推动网页的渲染和交互。JavaScript与浏览器的关系我们都知道,JavaScript是前端开发的核心语言,它直接在浏览器中运行,让网页变得生动有趣。你是否曾经想过,为什么JavaScr

node.js流带打字稿node.js流带打字稿Apr 30, 2025 am 08:22 AM

Node.js擅长于高效I/O,这在很大程度上要归功于流。 流媒体汇总处理数据,避免内存过载 - 大型文件,网络任务和实时应用程序的理想。将流与打字稿的类型安全结合起来创建POWE

Python vs. JavaScript:性能和效率注意事项Python vs. JavaScript:性能和效率注意事项Apr 30, 2025 am 12:08 AM

Python和JavaScript在性能和效率方面的差异主要体现在:1)Python作为解释型语言,运行速度较慢,但开发效率高,适合快速原型开发;2)JavaScript在浏览器中受限于单线程,但在Node.js中可利用多线程和异步I/O提升性能,两者在实际项目中各有优势。

JavaScript的起源:探索其实施语言JavaScript的起源:探索其实施语言Apr 29, 2025 am 12:51 AM

JavaScript起源于1995年,由布兰登·艾克创造,实现语言为C语言。1.C语言为JavaScript提供了高性能和系统级编程能力。2.JavaScript的内存管理和性能优化依赖于C语言。3.C语言的跨平台特性帮助JavaScript在不同操作系统上高效运行。

幕后:什么语言能力JavaScript?幕后:什么语言能力JavaScript?Apr 28, 2025 am 12:01 AM

JavaScript在浏览器和Node.js环境中运行,依赖JavaScript引擎解析和执行代码。1)解析阶段生成抽象语法树(AST);2)编译阶段将AST转换为字节码或机器码;3)执行阶段执行编译后的代码。

Python和JavaScript的未来:趋势和预测Python和JavaScript的未来:趋势和预测Apr 27, 2025 am 12:21 AM

Python和JavaScript的未来趋势包括:1.Python将巩固在科学计算和AI领域的地位,2.JavaScript将推动Web技术发展,3.跨平台开发将成为热门,4.性能优化将是重点。两者都将继续在各自领域扩展应用场景,并在性能上有更多突破。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)