FastAPI,一款实用的web测试框架

发表于:2024-2-07 09:51

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:软件质量保障    来源:知乎

  FastApi,一个用于构建 API 的现代、快速(高性能)的web框架。下面就给大家做一个入门ABC,讲解一下其特点以及如何使用。
  特点
  快速:可与 NodeJS 和 Go 比肩的极高性能(归功于 Starlette 和 Pydantic)。最快的 Python web 框架之一。
  高效编码:提高功能开发速度约 200% 至 300%。
  更少bug:减少约 40% 的人为(开发者)导致错误。
  智能:极佳的编辑器支持。处处皆可自动补全,减少调试时间。
  简单:设计的易于使用和学习,阅读文档的时间更短。
  简短:使代码重复最小化。通过不同的参数声明实现丰富功能。
  健壮:生产可用级别的代码。还有自动生成的交互式文档。
  话不多说,先上个小菜开开胃。
  pip install fastapi
  第一行代码
  from fastapi import FastAPI
  app = FastAPI()
  @app.get("/")
  async def root():
      return {"message": "Hello World"}
  INFO:Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
  该行显示了你的应用在本机所提供服务的 URL 地址。
  交互式 API 文档
  跳转到 http://127.0.0.1:8000/docs。你将会看到自动生成的交互式 API 文档。
  开发步骤
  步骤 1:导入 FastAPI
  from fastapi import FastAPI
  app = FastAPI()
  FastAPI 是一个为你的 API 提供了所有功能的 Python 类。
  技术细节
  FastAPI 是直接从 Starlette 继承的类。
  你可以通过 FastAPI 使用所有的 Starlette 的功能。
  步骤 2:创建一个 FastAPI「实例」
  from fastapi import FastAPI
  这里的变量 app 会是 FastAPI 类的一个「实例」。
  这个实例将是创建你所有 API 的主要交互对象。
  这个 app 同样在如下命令中被 uvicorn 所引用:
  如果你像下面这样创建应用:
  from fastapi import FastAPI
  my_awesome_api = FastAPI()
  @my_awesome_api.get("/")
  async def root():
      return {"message": "Hello World"}
  将代码放入 main.py 文件中,然后你可以像下面这样运行 uvicorn:
  步骤 3:创建一个路径操作
  路径
  这里的「路径」指的是 URL 中从第一个 / 起的后半部分。
  所以,在一个这样的 URL 中:
  https://example.com/items/foo
  ...路径是:/items/foo
  「路径」也通常被称为「端点」或「路由」。
  开发 API 时,「路径」是用来分离「关注点」和「资源」的主要手段。
  操作
  这里的「操作」指的是一种 HTTP「方法」。
  下列之一:
  ·POST
  · GET
  · PUT
  · DELETE
  ...以及更少见的几种:
  · OPTIONS
  · HEAD
  · PATCH
  · TRACE
  在 HTTP 协议中,你可以使用以上的其中一种(或多种)「方法」与每个路径进行通信。
  在开发 API 时,你通常使用特定的 HTTP 方法去执行特定的行为。
  通常使用:
  · POST:创建数据。
  · GET:读取数据。
  · PUT:更新数据。
  · DELETE:删除数据。
  因此,在 OpenAPI 中,每一个 HTTP 方法都被称为「操作」。
  我们也打算称呼它们为「操作」。
  定义一个路径操作装饰器
  from fastapi import FastAPI
  app = FastAPI()
  @app.get("/")
  async def root():
      return {"message": "Hello World"}
  @app.get("/") 告诉 FastAPI 在它下方的函数负责处理如下访问请求:
  ·请求路径为 /
  · 使用 get 操作
  你也可以使用其他的操作:
  @app.post()
  @app.put()
  @app.delete()
  以及更少见的:
  @app.options()
  @app.head()
  @app.patch()
  @app.trace()
  步骤 4:定义路径操作函数
  这是我们的「路径操作函数」:
  路径:是 /。
  操作:是 get。
  函数:是位于「装饰器」下方的函数(位于 @app.get("/") 下方)。
  from fastapi import FastAPI
  app = FastAPI()
  @app.get("/")
  async def root():
      return {"message": "Hello World"}
  这是一个 Python 函数。
  每当 FastAPI 接收一个使用 GET 方法访问 URL「/」的请求时这个函数会被调用。
  在这个例子中,它是一个 async 函数。
  你也可以将其定义为常规函数而不使用 async def:
  from fastapi import FastAPI
  app = FastAPI()
  @app.get("/")
  def root():
      return {"message": "Hello World"}
  步骤 5:返回内容
  from fastapi import FastAPI
  app = FastAPI()
  @app.get("/")
  async def root():
      return {"message": "Hello World"}
  你可以返回一个 dict、list,也可以像 str、int 一样的单个值,等等。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号