Ho un progetto di eCommerce di Rails che comunica con un'app per iOS. L'app per iOS riceve i dati JSON dal back-end di Rails, ma c'è anche il rendering HTML quando un utente arriva al progetto dal suo browser. Fondamentalmente chiamano le stesse azioni (create, destroy, update, ecc.) Da entrambi i lati.
/website/my_action
→ rendering HTML
/website/my_action.json
→ API
Qual è il modo migliore per organizzare la nostra app Rails per rimanere ASCIUTTI ed evitare l'odore di codice / codice disordinato? Il progetto utilizza attualmente respond_to
molto, ma mi chiedo se non dovremmo passare a un sistema diviso con la risposta default json
:
/api/v1/my_action
/website/my_action
E se sì, come faresti concretamente?
Ecco un esempio di un metodo nel sistema corrente
def get_following
@user = User.find(params[:id])
respond_to do |format|
format.html { render :index }
format.json { render :json => ApiFormat.success(:followers, user.following) }
end
end
Sembra bello ma diventa molto disordinato in alcuni metodi che preferisco non mostrare. In breve: come faresti a riutilizzare il progetto in un modo più efficiente?