0
我遇到過兩個關於在Rails中創建REST API的場景,我不知道哪一個是首選。如果您知道在開始時需要爲您的應用程序提供REST API,則通常爲 。將它放在名稱空間中並重復控制器邏輯是否有意義?Rails REST API實踐
我見過一些例子,人們已經有了一個應用程序,後來他們需要擴展並提供一個REST API。對此的方法是用namespace
在routes.rb
和controllers/api/whatever...
中創建新路線。儘管如此,這仍然會產生重複的代碼,但可能是更明智的做法。區別在於REST API調用的無狀態機器。
任何人都可以詳細說明首選方法,謝謝。
那麼在正常應用程序的情況下,您需要在BaseController中設置CSRF標記,但是如果您希望公開API並對這些操作進行操作(不是通過web應用程序gui),則應該禁用該標記。如何解決這個問題並禁用CSRF,但在同一控制器中的「正常」情況下啓用它? – Rabiees
要禁用CSRF,請參閱http://api.rubyonrails.org/classes/ActionController/RequestForgeryProtection/ClassMethods.html。只有在瀏覽器(非API)環境中時,纔可以使用':with'選項來引發異常。請參閱http://stackoverflow.com/questions/10741339/do-csrf-attacks-apply-to-apis。 – AnoE
謝謝,但我真的不知道如何使用它來解決我的問題。 – Rabiees