原文地址: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 方法中的一种。
安妮 编译自 Google Research Blog 量子位 出品 | 公众号 QbitAI 今天,谷歌发布了一系列TensorBoard API,开发者可在TensorBoard中添加自定义的可视化插件...,实现自定义可视化效果。...谷歌背后的目的何在?我们不妨一探究竟。 ? △ TensorBoard完全配置时的样子 由难到易 这事还得从头说起。...然而,在没有可重用的API时,TensorFlow团队外的开发人员添加新的可视化效果比较困难。因此,谷歌决定发布一套统一的API,让开发者能在TensorBoard中添加自定义的可视化插件。...硕士期间创建了一个API并命名为Beholder,Beholder能将训练模型时的数据(如梯度和卷积滤波器等)以视频的形式展示出来,量子位将demo视频搬运了过来: ?
第一篇: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发展。
本文主要介绍一下FastAPI是什么,多数内容摘自官网:https://fastapi.tiangolo.com/zh/ FastAPI是什么 FastAPI 是一个用于构建 API 的现代、快速...FastAPI特性 基于开放标准 用于创建 API 的 OpenAPI 包含了路径操作,请求参数,请求体,安全性等的声明。...所有的校验都由完善且强大的 Pydantic 处理。 安全性及身份验证 集成了安全性和身份认证。杜绝数据库或者数据模型的渗透风险。 OpenAPI 中定义的安全模式,包括: HTTP 基本认证。...API 密钥,在: 请求头。 查询参数。 Cookies, 等等。 加上来自 Starlette(包括 session cookie)的所有安全特性。...可扩展: Pydantic 允许定义自定义数据类型或者你可以用验证器装饰器对被装饰的模型上的方法扩展验证。 100% 测试覆盖率。
启发 FastAPI 地方: 拥有简单直观的API。 直接,直观地使用HTTP方法名称(操作)。 具有合理的默认值,功能强大的自定义。...启发 FastAPI 地方: 为API规范采用开放标准,而不是使用自定义架构。...它没有使用像第三方库(如Pydantic)提供数据验证,序列化和文档,它有自己的库。因此,这些数据类型定义将不太容易重用。 它需要更多详细的配置。...它在声明中使用了自定义类型,而不仅是 Python 的标准类型,但这仍然是巨大的进步。 它也是第一个生成自定义模式的框架,该自定义模式以 JSON 声明整个 API。...我从未在完整的项目中使用过它,因为它没有安全性集成,因此,我无法用基于 Flask-apispec 的全栈生成器替换我拥有的所有功能。我在项目积压中创建了添加该功能的请求。
它没有使用像第三方库(如Pydantic)提供数据验证,序列化和文档,它有自己的库。因此,这些数据类型定义将不太容易重用。 它需要更多详细的配置。...它在声明中使用了自定义类型,而不仅是 Python 的标准类型,但这仍然是巨大的进步。 它也是第一个生成自定义模式的框架,该自定义模式以 JSON 声明整个 API。...Hug 启发了 FastAPI 使用 Python 类型提示来声明参数,并自动生成定义 API 的模式。...我从未在完整的项目中使用过它,因为它没有安全性集成,因此,我无法用基于 Flask-apispec 的全栈生成器替换我拥有的所有功能。我在项目积压中创建了添加该功能的请求。...使用) 启发 FastAPI 地方 我认为用相同的 Python 类型声明多个内容(数据验证,序列化和文档),同时又提供了强大的编辑器支持,这是非常绝妙的主意。
自定义 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 中,以便在应用程序启动时使用。
背景 在许多情况下,应用程序可能需要一些外部设置或配置,例如密钥、数据库凭据、电子邮件服务凭据等。..."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
使用前端框架提升用户体验对于更丰富的用户界面,前端框架如React、Vue或Angular是不可或缺的。通过RESTful API与后端通信,实现前后端分离。5....# 自定义错误处理@app.errorhandler(404)def page_not_found(e): app.logger.error(f'Page not found: {request.url...GraphQL APIGraphQL是一种强大的API查询语言,允许客户端灵活地请求所需的数据。使用Graphene等库,你可以在Python中轻松构建GraphQL API。...总结本文深入探讨了构建Python Web应用程序的最佳实践,涵盖了从基础到高级的多个方面。...实施RESTful API: 使用Flask-RESTful或FastAPI等工具构建RESTful 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 的安全加密,中间件的使用,应用部署等等。哈,来日方长 !!!
此外,它还有比较完善的官方文档,并且官方文档正被翻译成多种语言,如:西班牙语、葡萄牙语、中文。 快速入门 前提条件 FastAPI 需要 Python 3.6+。...Swagger / OpenAPI 为 API 规范采用开放标准,而不是使用自定义架构。...Marshmallow 使用代码定义 “schemas”,自动的提供数据类型和验证。 Webargs 自动验证传入的请求数据。 APISpec 支持 API 的开放标准 OpenAPI。...尽管在 FastAPI 中它是可选的,它主要用于设置 headers,cookie 和其它状态代码。 Molten 使用模型属性的“默认”值为数据类型定义额外的验证。...Hug 帮助启发了 FastAPI 使用 Python 类型提示来声明参数,并自动生成定义 API 的 schema。
但是,FastAPI 从 Requests 中获得了很多启发。Requests 是一个与API(作为客户端)进行交互的库,而 FastAPI 是一个用于构建 API(作为服务器)的库。...它们或多或少地处于相反的末端,彼此互补。Requests 具有非常简单直观的设计,非常易于使用,并具有合理的默认值。但同时,它非常强大且可自定义。...启发 FastAPI 地方: 拥有简单直观的API。 直接,直观地使用HTTP方法名称(操作)。 具有合理的默认值,功能强大的自定义。...启发 FastAPI 地方: 为API规范采用开放标准,而不是使用自定义架构。...启发 FastAPI 地方: 使用代码来定义提供的数据类型和验证的 schema,验证都是自动化的。 Webargs API 框架需要的另一大功能点是解析从前端发送的请求数据。
类型提示与验证Pydantic模型:介绍Pydantic库在FastAPI中的应用,如何定义模型(BaseModel)进行数据验证与序列化。...类型提示验证:说明FastAPI如何利用类型提示自动进行请求数据验证,以及如何自定义验证器(validator)。...中间件(Middleware)与钩子(Hooks)中间件:解释中间件的作用,演示如何编写自定义中间件处理全局请求或响应。...请求生命周期事件:列举FastAPI中的请求生命周期事件(如on_startup, on_shutdown, dependencies),并举例说明其应用场景。...文档生成:充分利用FastAPI内置的交互式API文档(Swagger UI / ReDoc),确保在开发过程中及时更新文档,保持API文档与代码同步。
背景 上一篇文章讲了通过 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
# 环境变量前缀 envvar_prefix="PYDEMO", # 可以指定多个配置文件,如:settings.dev.toml settings_files=['settings.toml...,不超过10个 , enqueue=True) # 多进程安全 替换FastAPI中的日志模块 FastAPI是Python中用于开发API的web框架,默认使用内置的...下面我们结合dynaconf来实现一个自定义的可配置日志,项目目录如下: . ├── README.md ├── docs │ └── dev │ └── local.http ├──...API: import uvicorn from fastapi import FastAPI, Response, status import src.my_logger as mylogger from...src.config.app_options import options app = FastAPI(title="API-Demo", debug=__debug__) @app.get(
如果您需要将这些工具中的自定义字段传递给您的插件,您可能需要创建一个额外的 Retrieval Plugin API 端点来调用数据存储的 upsert 函数,例如 upsert-email。...这个自定义端点可以被设计为接受 Webhook 中的特定字段,并相应地处理它们。...您可以提供自定义元数据作为 JSON 字符串,以及用于筛查 PII 和提取元数据的标志。...您可以提供自定义元数据作为 JSON 字符串,以及用于筛查 PII 和提取元数据的标志。...•自定义元数据:允许用户将自定义元数据添加到文档分块中,例如标题或其他相关信息,可能会在某些用例中改善检索结果。
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 规范中定义的
如下图所示点击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的可视化和测试提供了便捷的平台。
•通过 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进行推理的提示中。
优点 Django 框架的代码结构统一且清晰易懂,开发人员可以像做填空题一样添加更多功能,也可以设计自定义的类或接口,即简单也不失灵活性、扩展性。...Django 生态还有一个利器就是 Django Rest Framework(DRF),DRF 可以让你轻松搭建具有 REST 风格的 API,由于它具有模块化和可自定义的架构,在前后端分离的趋势下,...内置用于内部数据的自定义 CRM 系统。 支持基于 Web 的应用程序的 IOS 和 Android 应用程序。 管理仪表板,基于照片的验证,用于发送用户通知的电子邮件系统等。...这意味着更少的 Bug,即使在深度嵌套的 JSON 请求中,Fast API 也会验证开发人员的数据类型。 集众所长,站在巨人的肩膀上。...它还可以在部署准备就绪的机器学习模型时完美缩放,因为当 ML 模型封装在 REST API 并部署在微服务中时,它在生产中会发挥最佳作用。
领取专属 10元无门槛券
手把手带您无忧上云