Rails-API 如何测试 Active Storage
Rails-API How to test Active Storage
我将 Active Storage 添加到我的 Rails API 应用程序中并想对其进行测试,但我不知道如何进行。我试图在 Postman 中发送带有 JSON 数据的文件,但是 JSON 数据没有正确发送或者我做错了什么。我是这样做的:
Image from postman
是否有任何选项可以在不创建任何视图的情况下发送带有文件和 JSON 数据的请求?
据我所知,无法通过 API 休息方式完成上传。您需要使用 enctype: multipart/form-data
作为常规 POST
通过表单完成。
在您的屏幕截图中,您已经以表单-post 的形式发送,因为您选择通过 form-data
发送。这就是为什么您的 json 没有被 rails 正确解析的原因。
如果您想在同一个请求中上传图片和 post 数据,您需要将 json 属性分解为表单数据字段,例如:
data[name]=asaa
data[last_name]=foo
...
或者,您可以在 data
字段中发送一个 JSON 并在控制器中获取时进行手动解析,例如:
def upload
file = params[:file]
data = parsed_params_data!(params)
# do your magic
end
def parsed_params_data!(params)
JSON.parse(params[:data])
end
我将 Active Storage 添加到我的 Rails API 应用程序中并想对其进行测试,但我不知道如何进行。我试图在 Postman 中发送带有 JSON 数据的文件,但是 JSON 数据没有正确发送或者我做错了什么。我是这样做的: Image from postman
是否有任何选项可以在不创建任何视图的情况下发送带有文件和 JSON 数据的请求?
据我所知,无法通过 API 休息方式完成上传。您需要使用 enctype: multipart/form-data
作为常规 POST
通过表单完成。
在您的屏幕截图中,您已经以表单-post 的形式发送,因为您选择通过 form-data
发送。这就是为什么您的 json 没有被 rails 正确解析的原因。
如果您想在同一个请求中上传图片和 post 数据,您需要将 json 属性分解为表单数据字段,例如:
data[name]=asaa
data[last_name]=foo
...
或者,您可以在 data
字段中发送一个 JSON 并在控制器中获取时进行手动解析,例如:
def upload
file = params[:file]
data = parsed_params_data!(params)
# do your magic
end
def parsed_params_data!(params)
JSON.parse(params[:data])
end