描述:
我们有一个带有一个文本字段的输入表单。在字段中输入某个数字后,按提交。
必须向外部 api 服务发出 http 请求。输入字段中写入的过滤器请求数据的位置。
此实现需要:
- 控制器中的方法
search
(这将显示带有输入字段的页面)。Submit
导致searching
同一控制器中的方法。
问题:
如何进行外部 API 调用?
即:
- 在哪里创建一个包含 API 调用和解析的类和方法的文件?
- 如何将文件连接到控制器以创建对象并调用方法?
- 接收到数据后,如何传递给视图?
描述:
我们有一个带有一个文本字段的输入表单。在字段中输入某个数字后,按提交。
必须向外部 api 服务发出 http 请求。输入字段中写入的过滤器请求数据的位置。
此实现需要:
search
(这将显示带有输入字段的页面)。Submit
导致searching
同一控制器中的方法。问题:
如何进行外部 API 调用?
即:
通常它是为此编写的
ServiceObject
- 一个简单的 ruby 类,其方法call
从表单中获取数据作为输入,将它们带到 apishka,解析答案并返回必要的内容。当然,所有这些操作都被巧妙地分解为私有方法。因此,在控制器中,只需调用
MySearchApiClient.new.call(query: params[:query])
,将结果添加到 @ 变量并在视图中使用它