将文件作为multipart/form-data发布到Rails API

Cla*_*ala 7 api ruby-on-rails

RoR noob在这里...... :)

我需要创建一个Rails API,客户端可以通过POST请求调用并发送XML文件.

我创建了这样的路线:

  namespace :api do
      namespace :v1 do
        resource :report
      end
  end
Run Code Online (Sandbox Code Playgroud)

我的控制器是这样的:

class Api::V1::ReportsController < ApplicationController

  respond_to :xml

  def create
    @report_submission = ReportSubmission.create :login => params[:login],
                                                 :status => :success
    respond_with(@report_submission)
  end
end
Run Code Online (Sandbox Code Playgroud)

我需要在控制器中接收客户端将要发布的XML文件,然后读取内容,以便最终将其放入数据库中?

我怎么测试呢?

我已经创建了一个沙盒项目来尝试这个并且卡住了......不知道下一步该做什么.我把它推到了这里:

https://github.com/claudiolassala/api-samples/

任何帮助都会很棒!结束

jam*_*esc 0

除了绝对 100% 确定发布的任何数据都无害之外,您不需要做任何事情:) RESTfull 路由在发布 xml 时以正常方式在控制器操作中为您提供参数哈希。这正是 ActiveResource 的工作原理,因此只需像平常一样询问您的参数即可。

唯一潜在的问题是 Rails 需要正确格式化的 xml 才能正常工作。

检查发生情况的最简单方法是尝试将 xml 文件发布到您的操作中,并仔细查看日志文件中控制器收到的参数

http://apidock.com/rails/ActiveResource/Base详细展示了它的工作原理(不,您不必通过 ActiveResource 对象发布 xml)

就测试而言,Ryan Bates 在 ActiveResource 上有一个很棒的 Railscast,这里http://railscasts.com/episodes/94-activeresource-basics和这里http://railscasts.com/episodes/95-more-on-activeresource

它们是旧的演员表,但仍然完全有效,您可以确切地看到如何测试