我正在使用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
回复看起来像这样:
从我看到的服务器仍然以表单编码格式从客户端获取params。
根据我的结论,rspec api文档没有将内容类型作为application / json发送到服务器。
有什么我做错了或需要采取哪些措施才能使rspec api文档发送正确的内容类型(application / json)?
答案 0 :(得分:0)
我在rspec api doc config
中找到了这个
# 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 }