0
我們正在構建/將新功能遷移到我們的Web應用程序中。我們有一個名稱空間API(V1),移動應用程序用它來與應用程序通信。在Rails中,根據是否通過API或Web前端發出請求,具有條件的模型的最佳方式是什麼?
雖然我們正在轉型(我們將首先發布Web的功能),但爲了在共享模型文件中分離邏輯,如何區分API請求和Web請求?我們需要這些模型保持與移動應用程序相同,但對於新的基於網絡的新功能則不同。像
request.format
不幸的是代碼是不是在型號。
還是有辦法告訴API控制器使用不同的模型文件,並有一些API與Web應用程序控制器的單獨模型?
顯而易見的事情是將一個'from_api'屬性添加到適當的模型中,並在您的模型級邏輯中使用它。您必須確保在所有創建新對象的API控制器中設置'from_api = true'。但是如果你在網絡上創建一個對象,然後通過API進行編輯,會發生什麼情況 - 你的業務邏輯是什麼?我們給出的任何答案都是猜測,而不知道業務邏輯是什麼。 –
一個例子是郵件程序。在移動應用程序/ API中,購物車模型需要調用郵件程序並傳遞一個對象(用戶一次只能購買一件商品)。在網絡應用程序中,我們構建了一個購物車系統,而購物車模型需要傳遞一系列物品,並讓郵件知道它將處理多個物品而不是一個物品。 – rcd