Dify中HTTP请求节点的常见操作

news/2024/10/11 3:19:06/
http://www.w3.org/2000/svg" style="display: none;">

HTTP节点包括API请求类型(GET、POST、HEAD、PATCH、PUT、DELETE),鉴权类型(无、API-Key基础、API-Key Bearer、API-Key自定义),HEADERS键值设置,PARAMS键值设置,BODY(none、form-data、x-www-form-urlencoded、raw text、JSON),超时设置(连接超时、读取超时、写入超时),输出变量(body String 响应内容、status_code Number 响应状态码、headers Object 响应头列表 JSON、files Array[File] 文件列表)。说明:在平时开发中,主要使用GET和POST这两种API请求类型。

https://img-blog.csdnimg.cn/img_convert/1c9f49eab196f5c550399ad658676f4e.png" alt="" />

https://img-blog.csdnimg.cn/img_convert/4ab117d6d1355f1474812b9ff93d0115.png" alt="" />

一.GET请求类型

功能:查询所有产品。GET请求是获取全部资源。

实现:后端通过Flask实现@app.route('/products', methods=['GET'])

https://img-blog.csdnimg.cn/img_convert/4ecb8ca7be67cc7ff7a15aca31053b84.png" alt="" />

执行Workflow后,在跟踪界面(开始->HTTP请求->结束)可查看最终输出:

https://img-blog.csdnimg.cn/img_convert/74e82f874d9926add4ec2929bf3f9acf.png" alt="" />

二.POST请求类型

功能:创建一个新的产品。POST请求是创建新资源。

实现:后端通过Flask实现@app.route('/products', methods=['POST'])

https://img-blog.csdnimg.cn/img_convert/e2ba79adb448a3a554d2276ed2a78a57.png" alt="" />

如果出现status_code: 502,且确保POST接口没有问题,那么基本上是设置了Proxy代理问题,关闭代理接口正常运行。

https://img-blog.csdnimg.cn/img_convert/1f6cce69eebcfab7582463c97c0cd90f.png" alt="" />

执行Workflow后,在跟踪界面(开始->HTTP请求->结束)可查看最终输出:

https://img-blog.csdnimg.cn/img_convert/3de4bca9b7a08c43f0416adf549ba1d7.png" alt="" />

三.HEAD请求类型

功能:根据id检查产品是否存在。HEAD请求为检查资源的存在性。

实现:后端通过Flask实现@app.route('/products/<int:id>', methods=['HEAD'])

https://img-blog.csdnimg.cn/img_convert/790a175de77dfbc4aa7f32be1e6fe326.png" alt="" />

执行Workflow后,在跟踪界面(开始->HTTP请求)可查看最终输出:

https://img-blog.csdnimg.cn/img_convert/5c634fcba37ad07b9c67949d8cf35385.png" alt="" />

(1)当使用HEAD方法访问/products/[int:id](int:id)时,函数会检查是否存在具有该ID的产品。

(2)如果产品存在,函数返回状态码200,表示资源存在,但不会返回产品的内容。

(3)如果产品不存在,函数返回状态码404,表示资源不存在。

执行Workflow后,在跟踪界面(开始->HTTP请求->结束)可查看最终输出:

四.PATCH请求类型

功能:根据id更新产品的名字。PATCH请求为部分更新资源。

实现:后端通过Flask实现@app.route('/products/<int:id>', methods=['PATCH'])

https://img-blog.csdnimg.cn/img_convert/27a62949ee05e3e3551942289e2d493c.png" alt="" />

执行Workflow后,在跟踪界面(开始->HTTP请求->结束)可查看最终输出:

https://img-blog.csdnimg.cn/img_convert/6e12ba47a66a959af254a045ecc0637d.png" alt="" />

五.PUT请求类型

功能:替换指定id的产品资源。PUT请求为完全替换资源。

实现:后端通过Flask实现@app.route('/products/<int:id>', methods=['PUT'])

https://img-blog.csdnimg.cn/img_convert/a7a097ef29aa18dbf7a07008d6532e25.png" alt="" />

执行Workflow后,在跟踪界面(开始->HTTP请求->结束)可查看最终输出:

https://img-blog.csdnimg.cn/img_convert/067a7646ee04813f9413fa4b1d81bc87.png" alt="" />

核心代码是product.update(request.json)product.update(...) 调用 product 字典的 update 方法,并将 request.json 作为参数传入。这个方法会遍历 request.json 中的所有键值对:

(1)如果 product 中已存在相同的键,则会用 request.json 中的值更新 product 中的值。

(2)如果 product 中不存在对应的键,则会将这个键值对添加到 product 中。

六.DELETE请求类型

功能:删除指定id的产品资源。DELETE请求为删除资源。

实现:后端通过Flask实现@app.route('/products/<int:id>', methods=['DELETE'])

https://img-blog.csdnimg.cn/img_convert/addcbe77d1ea2383313fe2b6f323c35f.png" alt="" />

执行Workflow后,在跟踪界面(开始->HTTP请求)可查看最终输出:

https://img-blog.csdnimg.cn/img_convert/41396513a8c1972a0b80101331557587.png" alt="" />

七.相关问题

1.API-Key基础、API-Key Bearer、API-Key自定义

API-Key基础: 使用预定义的头字段(如x-api-key)传递API密钥,简单直接。API-Key Bearer: 使用OAuth风格的Bearer Token传递API密钥,更适合需要增强安全性的场景。API-Key自定义: 根据需求自定义API密钥的传递方式,提供更大的灵活性。

(1)API-Key基础

API Key 基础认证是一种简单的认证方式,客户端在请求时将API密钥作为请求的一部分进行传递。通常,它会在请求头中包含一个特定的字段来传递API密钥。示例如下:

http">GET /resource HTTP/1.1
Host: api.example.com
x-api-key: your_api_key_here

(2)API-Key Bearer

API Key Bearer认证方式类似于使用OAuth的Bearer Token。客户端在请求头中的Authorization字段中传递API密钥,并以"Bearer"作为前缀。这种方式常用于需要更高安全性的场景。示例如下:

http">GET /resource HTTP/1.1
Host: api.example.com
Authorization: Bearer your_api_key_here

(3)API-Key自定义

API Key自定义认证允许开发人员根据需求自定义API密钥的传递方式。可以将API密钥放在请求的查询参数、请求体中,或者在请求头中使用自定义字段名。这种方式的灵活性较高,但需要确保在客户端和服务器端一致使用同样的方式。

查询参数方式,示例如下:

GET /resource?api_key=your_api_key_here HTTP/1.1
Host: api.example.com

请求体方式,示例如下:

POST /resource HTTP/1.1
Host: api.example.com
Content-Type: application/json{"api_key": "your_api_key_here","other_data": "value"
}

自定义头字段方式,示例如下:

GET /resource HTTP/1.1
Host: api.example.com
x-custom-api-key: your_api_key_here
2.POST和PUT请求异同

(1)幂等性:POST不是幂等的,而PUT是幂等的。

(2)用途:POST用于创建,PUT用于更新或替换。

(3)URI的知晓:使用POST时,通常不知道新资源的URI;使用PUT时,通常知道资源的URI。

3.form-data和x-www-form-urlencoded异同

当需要上传文件时,应选择 form-data;如果仅需要提交简单的文本表单,x-www-form-urlencoded 是一个更简洁的选择。

(1)form-data 通常用于文件上传或当表单包含文本和文件数据时使用。

https://img-blog.csdnimg.cn/img_convert/6a8b59478c1cd69523926e1a1e1ec3a5.png" alt="" />

(2)x-www-form-urlencoded 通常用于简单的表单提交,当数据仅包含文本内容时使用。

https://img-blog.csdnimg.cn/img_convert/590739bdb258cde842fe8312c74e9629.png" alt="" />

参考文献

[1] HTTP请求:https://docs.dify.ai/v/zh-hans/guides/workflow/node/http_request

NLP工程化(星球号)
https://img-blog.csdnimg.cn/img_convert/88c7d44a712bfd32fc14a773ebc7c72d.jpeg" alt="" />


http://www.ppmy.cn/news/1503276.html

相关文章

Python3网络爬虫开发实战(7)JavaScript 动态渲染页面爬取

文章目录 一、Selenium1. 基本安装2. 基本使用3. 声明浏览器对象4. 访问页面5. 查找节点6. 节点交互7. 动作链8. 执行 JavaScript9. 获取节点信息10. 切换 Frame11. 延时等待12. 前进后退13. Cookies14. 选项卡管理15. 异常处理16. 反屏蔽17. 无头模式18. Pyppeteer&#xff0c…

C#实战 - C#实现发送邮件的三种方法

作者&#xff1a;逍遥Sean 简介&#xff1a;一个主修Java的Web网站\游戏服务器后端开发者 主页&#xff1a;https://blog.csdn.net/Ureliable 觉得博主文章不错的话&#xff0c;可以三连支持一下~ 如有疑问和建议&#xff0c;请私信或评论留言&#xff01; 前言 当使用 C# 编程…

60个常见的 Linux 指令

常见60个Linux指令 1.ssh 登录到计算机主机2.ls 列出目录内容3.pwd 当前终端会话所在的完整路径4.cd 切换当前工作目录5.touch 创建空文件或更新文件的时间戳6.echo 终端输出文本或变量值7.nano 在终端中编辑文件8.vim 文本编辑器9.cat 查看、连接和创建文件10.shred 安全删除敏…

ant-design-vue 中 table行 点击事件

在使用 AntDesign 过程中&#xff0c;需求单击表格选中。设置table的customRow属性 设置之后&#xff0c;虽说官方文档也有详细介绍如何实现该功能。但是没看太懂&#xff0c;百度后解决 <a-table:columnscolumns:data-sourcetableDatachangehandleTableChange:customRowrow…

前端工程化11-webpack常见插件

1、webpack的插件Plugin 刚才我们也讲解了下&#xff0c;我们对webpack路径的一个处理&#xff0c;处理的话包括别名的配置&#xff0c;模块是如何找到并加载的&#xff0c;总的来说到现在webpack这个配置到现在来说还是相当的麻烦的&#xff0c;但是目前来说我们讲的这些东西…

Windows 端口占用 Port 端口占用 如何发现端口占用并且强杀?

应用场景 场景 有时候本地测试&#xff0c;经常发现端口占用。 如何找到端口占用&#xff0c;并且 kill 掉呢&#xff1f; 端口占用情况 lsof -i:XXX查看 sudo netstat -apn | grep XXX查看 ps -aux | grep XXX详细信息 ps -ef | grep XXX根据分类条件查询信息 发现并…

hdfs文件系统

简述什么是HDFS&#xff0c;以及HDFS作用 &#xff1f; HDFS在Hadoop中的作用是为海量的数据提供了存储&#xff0c;能提供高吞吐量的数据访问&#xff0c;HDFS有高容错性的 特点&#xff0c;并且设计用来部署在低廉的硬件上&#xff1b;而且它提供高吞吐量来访问应用程序的数…

《程序猿入职必会(5) · CURD 页面细节规范 》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…