用烧瓶创建API并在Postman中进行测试
#编程 #python #api #postman

API(应用程序编程界面)在科技行业中的作用对于SDLC(软件开发生命周期)的各个方面至关重要运送给用户。所有这些专业人员都在启用不同的系统,应用程序和服务中发挥着关键作用,以无缝进行通信和互动。

在本文中,您将学习如何使用Python框架构建API,并最终在Postman中进行测试。

源代码

在此GitHub repository中找到此项目的完整源代码。叉子和克隆仓库。

先决条件

确保您符合以下要求以遵循这篇文章:

  • 在您的本地机器上安装了Python 3
  • 对Python的基本的理解
  • 下载您的操作系统(操作系统)的Postman app

什么是邮递员

Postman是一种协作和API开发工具,允许开发人员创建,共享,设计,测试和记录构建API的过程。

激活虚拟环境

在我们编写代码行之前,在设置新的烧瓶应用程序时需要创建虚拟环境。从Python官方文档中,在现有Python安装的顶部创建了A 虚拟环境,这是一个独立的目录,其包含包含特定版本的应用程序的包装和依赖项,以确保在不同环境之间保持一致性。

要创建虚拟环境,请使用此命令使用Python内置的venv模块:

在MacOS和Linux中,使用:

python3 -m venv <name-of-project>

// for example
python3 -m venv flask-apis

Windows

python -m venv <name-of-project>

用所需的项目名称替换<name-of-project>。上面的命令将创建一个新目录,其中虚拟环境将居住。

文件夹应该看起来像这样:

.
└── flask-apis
    ├── bin
    ├── include
    └── pyvenv.cfg

接下来,导航到项目目录以激活虚拟环境。

要确保您参考正确的外壳,请根据您的外壳查看命令。

macOS- bash/zsh

source ./bin/activate

激活后,您的命令提示符将显示环境的名称,表明您在其中工作。

(flask-apis) (base)  ✝  ~/Desktop/flask-apis 

安装烧瓶

在激活的环境中,运行此命令以安装烧瓶:

pip install flask

让我们用此命令确认烧瓶包的安装:

pip show flask

flask package detail

使用烧瓶创建API

在每个新项目中要做的第一件事是创建一个包含应用程序代码的新文件。

运行此命令以在项目文件夹中创建一个新文件:

touch app.py 

复制纸条此代码:

app.py

    from flask import Flask, request

    app = Flask(__name__)

    model = []

    @app.get('/friend')
    def get_friends():
      return model

    @app.get('/friend/<int:id>')
    def get_one_friend(id):
      return model[id], 200

    @app.post('/friend')
    def create_friend():
        request_data = request.get_json()
        new_friend = {"name": request_data["name"], "id": len(model)}
        model.append(new_friend)
        return new_friend, 201

    @app.delete('/friend/<int:id>')
    def delete_friend(id):
      del model[id]
      return {"success": "data successfully deleted from the server"}, 200

在此代码段中,烧瓶Web框架创建了具有端点和HTTP方法的API(获取,邮寄,删除)。

这是每行的分解:

  • from flask import Flask, request:从烧瓶模块导入烧瓶和请求类。 Flask类对于处理应用程序实例至关重要,而请求对象负责接受传入的请求数据,查询参数和JSON有效载荷
  • app = Flask(__name__):此行创建了名为应用的新烧瓶应用程序实例。 __name__是指当前Python模块的名称
  • module = []分配了用于存储朋友列表项目
  • 的空列表
  • @app.get此HTTP路线装饰器在端点或端点上的路径上聆听()中定义的路径
  • @app.get('/friend/<int:id>')使用http获取路径路径参数 ok 200 的响应消息返回单个项目的列表作为响应。
  • def get_friends()之类的功能负责显示传入Get请求作为响应
  • 模型在数组或列表中显示商店项目
  • @app.post是HTTP路由装饰器,将帖子请求发送到服务器中指定的路径
  • request.get_json()方法提取JSON在邮政请求中发送的JSON,以下行创建了一个新的词典,该词典以 id 设置为模型的长度,该词在每个已发送的新数据
  • new_friend 被添加到代表朋友集合并返回状态代码201(创建)的模型列表中,以指示邮政请求是成功的,并且创建了新的资源
  • delete 路由,就像名称一样,从列表中删除了一个字典,并在路径上指定的ID

让我们运行此应用程序以使用命令获取开发服务器URL:

flask --app app --debug run

app:是包含应用程序代码的文件的名称。如果您命名了文件hello.py,则必须用hello替换app

Web应用程序将在http://127.0.0.1:5000/上运行。

Serving Flask app 'app'
 * Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://127.0.0.1:5000
Press CTRL+C to quit
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 100-724-825

在邮递员中进行测试

打开您的Postman应用程序以测试API。

在Postman应用程序中,您可以创建集合以将所有请求保存在工作空间中。查看this article以了解如何创建工作空间。

让我们使用 post 方法来创建新朋友对象的第一个请求。在窗口的“请求”部分中,单击 Body 选项卡,并通过选中 RAW 按钮将数据类型设置为JSON。单击发送按钮以使用状态代码 201创建

post a friend

您可以在每次发送的新请求中提高 id 将尽可能多的朋友增加1个。

使用Get方法设置端点/friend 如图所示:

get friends

响应列表所有 friends 数组中的对象。

得到一个单个朋友
要查看朋友的结果,请与此类端点 /朋友一起使用朋友对象的ID:< /p>

http://127.0.0.1:5000/friend/2

get a friend

删除朋友
创建的每个应用程序都应该能够从列表中删除项目,该项目在Postman中完成。

选择 delete 方法和具有这样的ID的端点:

delete a friend

成功消息指示从数据库中删除项目。要确认从端点/friend/0 中确认项目的删除,请使用get http方法查看新的朋友列表。

    [
        {
            "id": 1,
            "name": "teri"
        },
        {
            "id": 2,
            "name": "eloho"
        }
    ]

作为额外的练习课,让我们创建一个网站表单,然后使用Postman发送数据,而不是与客户端的UI(用户界面)进行浏览器,浏览器。

仍然在应用程序文件夹中创建一个新文件,forms.py,然后复制paste此代码:

forms.py

    from flask import Flask, request

    app = Flask(__name__)

    student = []

    @app.get("/api/v1.0/students")
    def students():
      return student

    @app.post("/api/v1.0/students")
    def create_student():
      name = request.form['name']
      country = request.form['country']
      city = request.form['city']
      skills = request.form['skills'].split(', ')
      bio = request.form['bio']
      birthyear = request.form['birthyear']
      details = {
        'name': name,
        'country': country,
        'city': city,
        'birthyear': birthyear,
        'skills': skills,
        'bio': bio,
      }
      student.append(details)
      return details

现在运行此应用程序以启动开发服务器:

flask --app forms --debug run

它是与前面解释的原理相同的原理,但是这次不是使用原始数据类型,而是选择form-data类型。表单数据使您可以发送键值对并指定内容类型。

form data

对于此请求,它们都是 text 内容类型,并且要访问邮政请求中发送的表单数据,我们使用 request.form, dictionary-就像包含通过表格提交的数据的对象。

对数据的响应应该看起来像这样:

response form data

结论

Postman是每个开发人员在武器库中应该拥有的工具,因为它不仅仅是创建API。它有更多的能力。

从这篇文章中可以看出,烧瓶作为Python框架有助于我们创建强大而可扩展的API体系结构,而不是依靠Node.js作为我们所有开发工作的替代选择。今天探索这个框架!

本文概述了烧瓶的可能性,并使用Postman来测试您的端点以确保其在部署前起作用,因为它通过为您的请求编写测试用例来显示您的错误。

资源

Creating a minimal application in Flask
Postman documentation
Creation of virtual environments
Writing tests in Postman