RailsでのDTO Part.1

Javaで言うDtoは、Railsではどこに配置するんだろ・・・
Modelに入れるんだろうか・・・
でも、実際にそんなテーブル存在しないから違うんだと思う。
ダミーのModelを作るとか?なんか汚い。Rubyだから必要ないと言えばそうなんだけど、
AWSの時は、他の言語とwsdl生成するのでやっぱり要る。
とりあえずこんな感じにしてみた。

  • [app]
    • [apis]
      • address_api.rb
      • [address_structs]
        • address_dto.rb
    • [controllers]
      • address_controller.rb
# address_api.rb
class RathgulApi < ActionWebService::API::Base
  api_method :get_address,
    :expects => [{:post => :int}],
    :returns => [[AddressStructs::AddressDto]]
# address_dto.rb
module AddressStructs
  class AddressDto < ActionWebService::Struct
    member :post, :string
    member :address1, :string
    member :address2, :string
  end
end
# address_controller.rb
class AddressController < ApplicationController
  wsdl_service_name 'Address'
  web_service_api AddressApi
  web_service_scaffold :invoke  
  
  def get_address(post)
    dto = AddressStructs::AddressDto.new
    ...
    ... 
    return dto
  end
end