我有一个包含书籍列表的数据表。下面是我的sql语句:
SELECT `Book`.`id` , `Book`.`name` , `Book`.`isbn` , `Book`.`quantity_in_stock` , `Book`.`price` , (`Book`.`quantity_in_stock` * `Book`.`price`) AS `sales`, concat(`Author`.`name`, ' ', `Author`.`surname`) AS `author`
FROM `books` AS `Book`
LEFT JOIN authors AS `Author`
ON ( `Book`.`author_id` = `Author`.`id` )
WHERE (`Book`.`quantity_in_stock` * `Book`.`price`) > 5000.00
查询工作正常,工作流也工作正常。但是,我想通过 API 访问它并通过变量栏使 5000.00 值可配置。
问题是我如何使这成为可能,以便当我使用下面的端点调用我的 API 时它可以正常工作?
https://domain.flowgear.io/5000booklist/{sales_value}
我想要的是能够通过 API 重新使用我的工作流程,并且只传递我想要查询表格的销售值。销售额可以是 2000 或 5000,具体取决于我想要实现的目标。
最佳答案
- 添加一个变量 bar 并为其添加一个名为“salesValue”的属性
- 在工作流详细信息 Pane 中,提供此 url:“/booklist/{salesValue}”- 大括号中的值必须与变量 bar 中的属性名称匹配
- 添加格式化程序,将您的 SQL 模板放入包括“WHERE (
Book
.quantity_in_stock
*Book
.price
) > {salesValue}"在 Expression 属性中,然后添加一个名为 salesValue 的自定义字段,并将其固定在变量栏 salesValue 属性中。将转义设置为 SQL。 - 获取 Formatter 的输出并将其插入 SQL 查询连接器的 SQL 查询属性。
- 添加另一个变量bar,并添加特殊属性FgResponseBody和FgResponseContentType
- 将 SQL 结果固定到 FgResponseBody 并将 FgResponseContentType 设置为 'text/xml'
如果要返回 JSON,请使用 JSON Convert 将 SQL Query 的结果转换为 JSON,然后将其固定到 FgResponseBody 并将 FgResponseContentType 设置为 'application/json'
关于php - Flowgear 可配置变量栏,用于通过 API 进行 sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25993467/