当前位置: 首页 > 知识库问答 >
问题:

python - fastapi 的 TestClient 的 delete 方法如何传递请求体?

司马耘豪
2023-09-01

接口

@meta.delete('', summary='删除指定母本', description='在请求体中传递一系列 meta_uuid, 返回已删除的母本的 meta_uuid', response_model=list[str])def delete_meta(    meta_uuids: list[str]):    pass

单元测试

client = TestClient(app)response = client.delete(    f'/meta',    json=[        f'{meta_uuid}'    ])

但是报错了

Traceback (most recent call last):  File "/Users/ponponon/Desktop/code/work/vddb/svddb_api/testing/apps/test_meta.py", line 121, in test_collection_meta_001    response = client.delete(TypeError: TestClient.delete() got an unexpected keyword argument 'json'

看了一下这个函数签名不支持 json 或者 data 参数

图片.png

相比之下,requests 的 delete 是支持的传递 json 或者 data 的

怎么办?

共有1个答案

白彦
2023-09-01

用requests库:

response = requests.delete(    'http://localhost:8000/meta',    json=[        f'{meta_uuid}'    ])

或者:
用POST请求替代DELETE请求:

@meta.post('/delete', summary='删除指定母本', description='在请求体中传递一系列 meta_uuid, 返回已删除的母本的 meta_uuid', response_model=list[str])def delete_meta(    meta_uuids: list[str]):    pass
 类似资料:
  • 我正在使用以下接受多个文件的FastAPIendpoint: 我想先输入参数,然后输入列表,但我找不到执行有效 post 请求的方法: 如果我只上传作为元组工作列表,但我不知道如何传入参数。

  • 问题内容: 以下是我的Ajax 请求: 除了之外,还有其他传递数据的方法吗? 问题答案: 阅读此错误问题:http : //bugs.jquery.com/ticket/11586 引用 RFC 2616字段 该方法请求原始服务器删除 由Request-URI标识 的资源。 因此,您需要在URI中传递数据

  • 我正在尝试实现我从GitHub获得的这个spring应用程序。我还在学习过程中,所以这可能是一个基本的问题。对于这个update user方法,我需要在postman正文中传递哪些参数?我在邮递员正文中写了{“id”:1,“password”:“1234”},但它向我显示了400个错误的语法错误。 在控制器

  • 我正在使用RestTemplate方法将请求发布到endpoint。我在不同的文件中有和,我想把它们传递给POST请求,除此之外,我还想把传递给endpoint。 我能够成功地传递头和请求,但不能传递包含凭据的Http实体 有没有办法让我三样东西都及格 > HttpHeader 要求 这是我的密码 以下代码位于NewHttpHeader中。包含和

  • 问题内容: 如何通过python模块Requests传递csrftoken?这就是我所拥有的,但是它不起作用,并且我不确定将其传递给哪个参数(数据,标头,身份验证…) 每次都有相同的错误消息。 问题答案: 如果要设置引荐来源标头,则对于该特定站点,您需要将引引来源设置为与登录页面相同的URL: 当使用不安全时,标头通常会被过滤掉,否则无论如何很容易被欺骗,因此大多数站点不再需要设置标头。但是,在使

  • 我有以下代码,用于创建和客户端并发送请求并等待响应。在这里你可以看到,我也用设置了一些标头值 现在,我需要我的要求是,我不需要消费者端的任何响应,只想将请求传递给带有一些标头值的消费者。为此,我只需发布命令并忘记它。我的代码如下, 但现在,我关心的是,我如何用它传递头值?