Rspec api 文档 + api 请求正文 json 格式
Rspec api documentation + apitome request body in json format
我正在使用 rspec api 文档、apitome 和 oauth2 协议来为我们的 api 构建验收测试。一切正常,但请求正文如下所示:
我从上面生成的文档中注意到:
Content-Type: application/x-www-form-urlencoded
那应该是 application/json 而不是。我浏览了一些博客 post 并建议把这个:
post "/api/v1/ticket_carts" do
header "Content-Type", "application/json"
我试图检查服务器上的参数
def create
render json: params
# options = set_ticket_cart_protected_params(filter_params)
# adapter = Adapter::TicketCart.new(options)
# @handler = adapter.handler
# @handler.call
# render json: @handler.order, serializer: adapter.serializer_class
end
响应看起来像这样:
据我所见,服务器仍然以表单编码格式从客户端获取参数。
我的结论是,rspec api 文档没有将内容类型 application/json 发送到服务器。
我是否做错了什么或需要采取哪些其他步骤才能使 rspec api 文档发送正确的内容类型 (application/json)?
我在 rspec api 文档配置中找到了这个
# Change how the post body is formatted by default, you can still override by `raw_post`
# Can be :json, :xml, or a proc that will be passed the params
然后我试了这个
# set content type to json
header "Content-Type", "application/json"
#override the params to json format
let(:raw_post) { params.to_json }
我正在使用 rspec api 文档、apitome 和 oauth2 协议来为我们的 api 构建验收测试。一切正常,但请求正文如下所示:
我从上面生成的文档中注意到:
Content-Type: application/x-www-form-urlencoded
post "/api/v1/ticket_carts" do
header "Content-Type", "application/json"
我试图检查服务器上的参数
def create
render json: params
# options = set_ticket_cart_protected_params(filter_params)
# adapter = Adapter::TicketCart.new(options)
# @handler = adapter.handler
# @handler.call
# render json: @handler.order, serializer: adapter.serializer_class
end
响应看起来像这样:
据我所见,服务器仍然以表单编码格式从客户端获取参数。
我的结论是,rspec api 文档没有将内容类型 application/json 发送到服务器。
我是否做错了什么或需要采取哪些其他步骤才能使 rspec api 文档发送正确的内容类型 (application/json)?
我在 rspec api 文档配置中找到了这个
# Change how the post body is formatted by default, you can still override by `raw_post`
# Can be :json, :xml, or a proc that will be passed the params
然后我试了这个
# set content type to json
header "Content-Type", "application/json"
#override the params to json format
let(:raw_post) { params.to_json }