2008-09-27 23 views

cevap

11

Genelde, uygulamalarımın API'leri gerçekten HTML arayüzünü oluşturan kaynaklarda oluşturulmuştur. Bazıları için (ben değil), bu sadece scaffold üretecinden çıkan kodu kullanıyor olabilir - ancak özel yazmam veya jeneratörü kullanmama izin verip vermeme bakılmaksızın, kaynakları yalnızca programatik olarak gösterdiğim çok az örnek var. API ve son kullanıcı görünümüne değil.

Sürüm oluşturma, şimdiye kadar oluşturduğum uygulamalar için bir sorun olmadı, ancak bunu uygulamak için iki yol düşünebilirim.

1) Eğer bu durumda kontrol ünitesine erişim işleme oluşmaya belirtmek için bir parametre set önek 'v1' 'v2' vb ile yolları ekleyebilirsiniz: rotalara

. rb:

posts_controller.rb

class PostsController < ApplicationController 
    def index 
    respond_to do |format| 
     format.xml do 
     if params[:version] == 'v1' 
      # ... 
     else 
      # ... 
     end 
     end 
    end 
    end 
end 

2) Ayrıca, her bir versiyonu için özel yanıt biçimi eklemeyi düşünebilirsiniz içinde

map.resources :posts, :path_prefix => '/:version' 

başlatıcılar

/mime_types.rb posts_controller.rb içinde

Mime::Type.register_alias "application/xml", :v1 
Mime::Type.register_alias "application/xml", :v2 

class PostsController < ApplicationController 
    def index 
    respond_to do |format| 
     format.v1 do 
     # ... 
     end 
     format.v2 do 
     # ... 
     end 
    end 
    end 
end 

eski size example.com/v1/posts.xml ve example.com/v2/ gibi URL'leri verecekti posts.xml; ikincisi size example.com/posts.v1 ve example.com/posts.v2 gibi URL'leri verirdi.

+0

Gerçek iş mantığının farklı olup olmadığını belirlemek için başka bir seçenek de, isim verilen yolları kullanmak olurdu. – Kris

İlgili konular