Sto imparando Ruby on Rails proveniente da Node.js / express e ho alcune domande sul design. Ho usato React.js per il frontend nelle mie app di Node e ho intenzione di continuare a farlo nelle mie app Rails.
Cosa stavo facendo in Node.js
Tutte le richieste che iniziano con /
vengono gestite da un "router di visualizzazione". Questo serve essenzialmente tutto l'HTML e qualsiasi JSON iniettato. Ad esempio:
mywebsite.com/profile
servirà HTML del profilo dell'utente.
Le richieste che iniziano con /api
vengono gestite da un "router API". Questo aveva le rotte dell'API REST per accedere alle risorse.
GET mywebsite.com/api/profile
serve il JSON per il profilo.
L'app React caricata in profile.html
, ad esempio, renderebbe una richiesta HTTP a GET mywebsite.com/api/profile
e popolerebbe la vista. (Naturalmente, avrei potuto inserire il profilo tramite EJS, ma questo è un caso d'uso di esempio)
Si noti che entrambi questi router erano in esecuzione sullo stesso server / IP
Cosa sto pensando di fare con Rails
Ho intenzione di creare app più complesse che abbiano sia un client Web che client mobili nativi. Ciò significa che ho bisogno di un server REST stateless. Ho letto questa guida sulla generazione di un'app Rails "solo API" che mi ha fatto pensare di rendere l'API REST il proprio server, forse sotto api.mywebsite.com
e avere tutte le visualizzazioni pubblicate da mywebsite.com
. La prima sarebbe un'app Rails solo per API, e quest'ultima sarebbe una normale app per Rails che offre viste.
Inoltre, come domanda a parte, stavo leggendo la Documento di reazione delle rotaie e stava avendo problemi a trovare alcuni aspetti negativi. Se qualcuno con la conoscenza di esso può fornire l'altro lato della storia, sarebbe molto apprezzato!
Per un'app che potrebbe potenzialmente complicarsi e scalare, il disaccoppiamento dell'API REST e del View è una buona idea? Cosa fanno le aziende come Twitter e Github (che usano o usano Rails credo)?