--- layout: old_post title: RESTリソースがスキーマを/new.xmlへのアクセスで返す permalink: /tatsuya/show/313-rest-new-xml ---

GET /hoge/new.xml でRESTなリソース "Hoge" のスキーマをXMLで出力すると良いんじゃね?という話がRails Core で議論されてるらしく、でscaffold_resourceのテンプレートにパッチが当ったみたい。

パッチ:

 # GET /<%= table_name %>/new 
 # GET /<%= table_name %>/new.xml 

 def new 
   @<%= file_name %> = <%= class_name %>.new 
 
   respond_to do |format| 
     format.html # new.erb 
     format.xml { render :xml => @<%= file_name %>.to_xml } 
   end 
 end

こんな出力:

<?xml version="1.0" encoding="UTF-8"?>
<user>
  <active type="boolean"></active>
  <created-at type="datetime"></created-at>
  <email></email>
  <middle-name></middle-name>
</user>

値が空で結果としてスキーマが返ると。RESTなリソースにアクセスしたいクライアントは、とりあえず GET /hoge/new.xml へアクセスすればスキーマが判る、シームレスに繋がるWebサービスとか。良いねこれは、SOAPの100倍くらいスマートだと思う。

言い出したのが誰かと思ったらJesterを作ってるEric Millだそうだ。