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

【译】如何在 Node.js 创建安全 GraphQL API

原文地址:How to Create a Secure Node.js GraphQL API 作者:Marcos 本文目的是提供一份快速指南 -- 《如何快速在如何在 Node.js 创建安全...API 只在意服务端与客户端之间通信方式,而不会依赖于特定技术栈。 怎么定义一个 API 是否良好?它可能会拥有可靠、可维护和可扩展 API,以及可以为多种客户端和前端应用程序提供服务。...如前面所讲述那样,查询 (query) 是客户端从 API 读取和操作数据方式。你可以传递一个对象类型,并且定义所希望返回字段类型。...`)); 在上面的代码,我们做了以下事情: 启动 Express 服务并监听 3000 端口 定义这个例子会使用到 queries 和 mutations 定义 queries 和 mutations...请注意,本文中所提到所有标准和建议都不会是一成不变。 这只是许多构建 GraphQL API 方法一种。

2.5K20

谷歌发布TensorBoard API,让你自定义机器学习可视化

安妮 编译自 Google Research Blog 量子位 出品 | 公众号 QbitAI 今天,谷歌发布了一系列TensorBoard API,开发者可在TensorBoard添加自定义可视化插件...,实现自定义可视化效果。...谷歌背后目的何在?我们不妨一探究竟。 ? △ TensorBoard完全配置时样子 由难到易 这事还得从头说起。...然而,在没有可重用API时,TensorFlow团队外开发人员添加新可视化效果比较困难。因此,谷歌决定发布一套统一API,让开发者能在TensorBoard添加自定义可视化插件。...硕士期间创建了一个API并命名为Beholder,Beholder能将训练模型时数据(梯度和卷积滤波器等)以视频形式展示出来,量子位将demo视频搬运了过来: ?

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

Vue 3.0 令人激动新功能:Portals+新自定义指令API

第一篇:Vue 3.0 令人激动新功能:Composition API 第二篇:Vue 3.0 令人激动新功能:Fragment+Suspense+多个v-model 这是最后一篇了,文章很长,...Portals Portals是一种特殊组件,目的是在当前组件之外渲染某些内容。这也是React中原生实现功能之一。这是React文档关于portals说法。...新自定义指令API 自定义指令API将在Vue 3略有改变,只是为了更好地与组件生命周期保持一致。这个变化应该会让新用户更容易理解和学习,因为它现在更直观了。 这是目前自定义指令API。...这个API改变目前在这个RFC讨论,这意味着它可能会在未来发生变化。 Psst!你可以在我们课程中学习如何掌握自定义指令。...总结 除了Composition API是Vue 3最大API之外,我们还可以发现很多小改进。我们可以看到,Vue正在向着更好开发者体验和更简单、更直观API发展。

61410

FastAPI从入门到实战(0)——初识FastAPI

本文主要介绍一下FastAPI是什么,多数内容摘自官网:https://fastapi.tiangolo.com/zh/ FastAPI是什么 FastAPI 是一个用于构建 API 现代、快速...FastAPI特性 基于开放标准 用于创建 API OpenAPI 包含了路径操作,请求参数,请求体,安全性等声明。...所有的校验都由完善且强大 Pydantic 处理。 安全性及身份验证 集成了安全性和身份认证。杜绝数据库或者数据模型渗透风险。 OpenAPI 定义安全模式,包括: HTTP 基本认证。...API 密钥,在: 请求头。 查询参数。 Cookies, 等等。 加上来自 Starlette(包括 session cookie)所有安全特性。...可扩展: Pydantic 允许定义自定义数据类型或者你可以用验证器装饰器对被装饰模型上方法扩展验证。 100% 测试覆盖率。

3.5K20

Github 火热 FastAPI 库,站在了这些知名库肩膀上

启发 FastAPI 地方: 拥有简单直观API。 直接,直观地使用HTTP方法名称(操作)。 具有合理默认值,功能强大自定义。...启发 FastAPI 地方: 为API规范采用开放标准,而不是使用自定义架构。...它没有使用像第三方库(Pydantic)提供数据验证,序列化和文档,它有自己库。因此,这些数据类型定义将不太容易重用。 它需要更多详细配置。...它在声明中使用了自定义类型,而不仅是 Python 标准类型,但这仍然是巨大进步。 它也是第一个生成自定义模式框架,该自定义模式以 JSON 声明整个 API。...我从未在完整项目中使用过它,因为它没有安全性集成,因此,我无法用基于 Flask-apispec 全栈生成器替换我拥有的所有功能。我在项目积压创建了添加该功能请求。

5.1K30

FastAPI框架诞生缘由(下)

它没有使用像第三方库(Pydantic)提供数据验证,序列化和文档,它有自己库。因此,这些数据类型定义将不太容易重用。 它需要更多详细配置。...它在声明中使用了自定义类型,而不仅是 Python 标准类型,但这仍然是巨大进步。 它也是第一个生成自定义模式框架,该自定义模式以 JSON 声明整个 API。...Hug 启发了 FastAPI 使用 Python 类型提示来声明参数,并自动生成定义 API 模式。...我从未在完整项目中使用过它,因为它没有安全性集成,因此,我无法用基于 Flask-apispec 全栈生成器替换我拥有的所有功能。我在项目积压创建了添加该功能请求。...使用) 启发 FastAPI 地方 我认为用相同 Python 类型声明多个内容(数据验证,序列化和文档),同时又提供了强大编辑器支持,这是非常绝妙主意。

2.3K20

FastAPI-API文档和自动化测试(三)

自定义 API 文档虽然 FastAPI 可以自动生成 API 文档,但有时您可能需要自定义文档某些部分。为此,FastAPI 提供了一种方式来扩展自动生成文档。...您可以通过创建一个 OpenAPI 文档对象来扩展自动生成文档。您可以在此对象上添加标签、安全定义、服务器等信息。此外,您还可以使用 FastAPI 提供几个装饰器来自定义每个路由操作。...下面是一个自定义 API 文档示例:from fastapi import FastAPI, Body, Header, HTTPExceptionfrom fastapi.openapi.docs...在 custom_openapi 函数,我们使用了 FastAPI 提供 get_openapi 函数来生成自定义 OpenAPI 文档。...我们还使用了 x-logo 扩展属性来指定一个自定义徽标。最后,我们将自定义 OpenAPI 文档保存在 app.openapi_schema ,以便在应用程序启动时使用。

83210

FastAPI(64)- Settings and Environment Variables 配置项和环境变量

背景 在许多情况下,应用程序可能需要一些外部设置或配置,例如密钥、数据库凭据、电子邮件服务凭据等。..."Awesome API" admin_email: str items_per_user: int = 50 settings = Settings() app = FastAPI...前言 在某些情况下,提供依赖项 Settings 会有用,而不是让全局对象拥有可随处使用 Settings 在测试期间会有用,因为使用自定义 Settings 覆盖依赖项非常容易 config.py...,也许在不同环境,将它们放在一个文件,然后从文件读取它们,就好像它们是环境变量一样 这些环境变量通常放在一个文件 .env ,该文件称为“dotenv” tips 以点 (.)...开头文件是类 Unix 系统( Linux 和 macOS)隐藏文件 但是 dotenv 文件实际上不必具有那个确切文件名 Pydantic 支持使用外部库读取这类型文件 安装第三方库 pip

2.1K20

(进阶篇)Python web框架FastAPI——一个比Flask和Tornada更高性能API 框架

数据库 在 FastAPI ,我们一既往使用了 SQLAlchemy 初始化数据库文件: from sqlalchemy import create_enginefrom sqlalchemy.ext.declarative...所以在数据库操作时候,可以自己定义传入和返回模型字段来做有效限制,你只需要继承 pydantic BaseModel 基类即可,看起来是那么简单合理。...异常处理 在各种 http资源 不存在或者访问异常时候都需要有 http状态码 和 异常说明,例如, 404 Not Found 错误,Post请求出现 422,服务端 500 错误,所以如何在程序合理引发异常...自定义自己异常处理代码 from fastapi import FastAPI, HTTPException from fastapi.exceptions import RequestValidationError...FastAPI 官方文档十分庞大,有非常多地方还没有普及和深入,比如 FastAPI 安全加密,中间件使用,应用部署等等。哈,来日方长 !!!

2.5K21

FastAPI 作为集大成者,它灵感来自哪里?

此外,它还有比较完善官方文档,并且官方文档正被翻译成多种语言,:西班牙语、葡萄牙语、中文。 快速入门 前提条件 FastAPI 需要 Python 3.6+。...Swagger / OpenAPI 为 API 规范采用开放标准,而不是使用自定义架构。...Marshmallow 使用代码定义 “schemas”,自动提供数据类型和验证。 Webargs 自动验证传入请求数据。 APISpec 支持 API 开放标准 OpenAPI。...尽管在 FastAPI 它是可选,它主要用于设置 headers,cookie 和其它状态代码。 Molten 使用模型属性“默认”值为数据类型定义额外验证。...Hug 帮助启发了 FastAPI 使用 Python 类型提示来声明参数,并自动生成定义 API schema。

2K10

FastAPI框架诞生缘由(上)

但是,FastAPI 从 Requests 获得了很多启发。Requests 是一个与API(作为客户端)进行交互库,而 FastAPI 是一个用于构建 API(作为服务器)库。...它们或多或少地处于相反末端,彼此互补。Requests 具有非常简单直观设计,非常易于使用,并具有合理默认值。但同时,它非常强大且可自定义。...启发 FastAPI 地方: 拥有简单直观API。 直接,直观地使用HTTP方法名称(操作)。 具有合理默认值,功能强大自定义。...启发 FastAPI 地方: 为API规范采用开放标准,而不是使用自定义架构。...启发 FastAPI 地方: 使用代码来定义提供数据类型和验证 schema,验证都是自动化。 Webargs API 框架需要另一大功能点是解析从前端发送请求数据。

2.3K10

Python面试:FastAPI框架原理与实战

类型提示与验证Pydantic模型:介绍Pydantic库在FastAPI应用,如何定义模型(BaseModel)进行数据验证与序列化。...类型提示验证:说明FastAPI如何利用类型提示自动进行请求数据验证,以及如何自定义验证器(validator)。...中间件(Middleware)与钩子(Hooks)中间件:解释中间件作用,演示如何编写自定义中间件处理全局请求或响应。...请求生命周期事件:列举FastAPI请求生命周期事件(on_startup, on_shutdown, dependencies),并举例说明其应用场景。...文档生成:充分利用FastAPI内置交互式API文档(Swagger UI / ReDoc),确保在开发过程及时更新文档,保持API文档与代码同步。

19910

FastAPI(48)- 自定义响应之 HTMLResponse、PlainTextResponse

背景 上一篇文章讲了通过 Response 自定义响应,但有一个缺点 如果直接返回一个 Response,数据不会自动转换,也不会显示在文档 这一节开始讲自定义响应 会讲解多个响应类型 JSONResponse... 查看 Swagger API 文档 Response Header 请求结果 源码 只是声明了下 media_type,其他都没变 返回自定义 Response 第二种方式 背景 上面的两个栗子是通过在路径操作装饰器...但这样写有个缺点,开头也说了直接返回 Response 缺点 不会记录在 OpenAPI ,比如不会记录 Content-type,并且不会在 Swagger API 文档显示 查看 Swagger...API 文档 Response Header 请求结果 添加 response_class 和 return Response 综合使用 上面的栗子讲了直接 return Response 缺点...=PlainTextResponse) async def main(): return "Hello World" 查看 Swagger API 文档 Response Header

99050

FastAPI(57)- 安全相关概念

OAuth2 OAuth2 是一个规范,它定义了几种处理身份验证和授权方法 这是一个相当广泛规范,涵盖了几个复杂用例 它包括使用“第三方”进行身份验证方法 比如在抖音通过微信、QQ 登录,底层用就是...OpenAPI OpenAPI(以前称为 Swagger)是用于构建 API(现在是 Linux 基金会一部分)开放规范 FastAPI 基于 OpenAPI,这就是拥有多个自动交互式文档界面、代码生成等原因...OpenAPI 有一种方法可以定义多个安全“方案” 通过使用它们,可以利用所有这些基于标准工具,包括这些交互式文档系统 apikey 一个应用程序特定密钥,可以来自: query param header...基本身份验证 HTTP 摘要 oauth2 处理安全所有 OAuth2 方法(称为“流”) 其中一些流程适用于构建 OAuth 2.0 身份验证提供程序( Google、Facebook、Twitter...openIdConnect 有一种方法可以定义如何自动发现 OAuth2 身份验证数据 这种自动发现是 OpenID Connect 规范定义

88810

学习FastAPI一些体会

如下图所示点击try out即可调试程序 1.2类型注解 使用 Pydantic 数据模型,我们可以轻松地定义 API 输入和输出结构,并确保数据完整性和一致性。...JWT 支持: JSON Web Tokens(JWT)是一种用于安全传输信息开放标准。FastAPI支持JWT,可以轻松集成JWT身份验证机制,用于在Web应用对用户进行安全认证和授权。...HTTPS 安全传输: FastAPI推荐在生产环境中使用HTTPS,以确保数据在传输过程安全性。FastAPI能够与ASGI服务器(uvicorn)一起使用,支持HTTPS配置。...通过在模型定义数据类型和规则,开发者可以确保输入和输出数据合法性,减少了潜在错误发生可能性。这种类型注解和数据验证组合为开发者提供了更加可靠和安全编码体验。...首先,FastAPI在自动生成文档方面的独特优势使其在API开发更为突出。通过集成Swagger UI和ReDoc,FastAPI能够自动生成交互式文档,为API可视化和测试提供了便捷平台。

58810

RasaGpt——一款基于Rasa和LLM聊天机器人平台

•通过 FastAPI[8] 上传文档并进行“训练”•支持文档版本控制,上传时自动执行“重新训练”•可通过 FastAPI[9] 和 SQLModel[10] 自定义异步端点和数据库模型•机器人可确定是否需要人工干预...•endpoints.yml - 这是我们为Rasa设置自定义动作终点地方,以触发我们回退。•nlu.yml - 这是我们设置intent out_of_scope地方。...由于为了进行此演示,意图已经被减弱了,所以它将进入运行在actions.py 回退动作。7.自定义动作将捕获元数据,并将来自FastAPI响应转发给用户。...2.在Makefile[31]models.py[32]处于API容器运行该命令,该命令创建来自这个模型表。3.enable_vector方法[33]在数据库启用pgvector扩展。...3.ActionGPTFallback函数[38]将会调用FastAPI API服务器[39]。4.API使用LlamaIndex找到相关索引内容,并将其注入到发送给OpenAI进行推理提示

3.7K20

Django,Flask ,FastAPI 怎么选?

优点 Django 框架代码结构统一且清晰易懂,开发人员可以像做填空题一样添加更多功能,也可以设计自定义类或接口,即简单也不失灵活性、扩展性。...Django 生态还有一个利器就是 Django Rest Framework(DRF),DRF 可以让你轻松搭建具有 REST 风格 API,由于它具有模块化和可自定义架构,在前后端分离趋势下,...内置用于内部数据自定义 CRM 系统。 支持基于 Web 应用程序 IOS 和 Android 应用程序。 管理仪表板,基于照片验证,用于发送用户通知电子邮件系统等。...这意味着更少 Bug,即使在深度嵌套 JSON 请求,Fast API 也会验证开发人员数据类型。 集众所长,站在巨人肩膀上。...它还可以在部署准备就绪机器学习模型时完美缩放,因为当 ML 模型封装在 REST API 并部署在微服务时,它在生产中会发挥最佳作用。

5.2K30
领券