Il problema
Ho bisogno di sviluppare un'applicazione Software-as-a-Service, che verrà utilizzata dai nostri clienti. L'applicazione contiene molti moduli (applicazione aziendale) che utilizzano moduli passo-passo. Gli utenti riempiranno questi moduli e vedranno dei progressi.
La Società (il nostro cliente) può avere una visione del loro dashboard, mostrando loro gli utenti, i prodotti e altre informazioni, incluse le informazioni aziendali e alcune personalizzazioni.
Una cosa che sto cercando di risolvere è: ho bisogno di un sottodominio per ciascuno dei miei clienti e ogni utente in azienda deve avere un sottodominio in Company.
Ad esempio, utilizzando il primo approccio (sopra), ad esempio, cosa avrò: API: .myapp.com / api / v1 Pagina di base del client (resa dalla mia applicazione): .com (CNAME da qualche parte) Pagina Base utente (resa dalla mia applicazione): ..com (CNAME a qualche parte)
Le cose che non riesco a capire come fare sono:
- È meglio sviluppare un'API REST, utilizzare gli standard per questo e creare un'applicazione Front-end separata (utilizzando Angular, Ember o altri framework). Quindi distribuisco l'API, ottengo il collegamento e lo installo sulla mia applicazione Angular. Questo è un buon approccio?
- Sviluppa un'applicazione standard, in cui la stessa applicazione si collega al database e renderizza le viste, dove la logica sarà su Modelli e controllori.
- Altro approccio? (Penso che l'utilizzo dei microservizi in questa fase sarà ingombrante.
Sulla base di questi approcci, ho alcune domande.
Nel primo caso:
- Penso che il modo migliore per l'API sia utilizzare un sottodominio basato sul mio dominio di avvio, come: .mycompany.com / api /. In questo modo, posso acquistare un jolly SSL e proteggere l'endpoint di ogni cliente. Ma quello che vedo in applicazioni come Stripe, sta usando un singolo endpoint, come: api.stripe.com con un SSL EV. Quindi, entrambi gli approcci sono buoni e sicuri?
- Quale è un buon approccio per il rendering del front-end? Basandosi sul fatto che sul front-end saranno i sottodomini jolly per ciascun utente.
Quindi, quale è un buon modo per svilupparlo?
Sfondo
Utilizzo Rails 4 e Postgres (per database multi-tenancy) e, se necessario, posso sviluppare utilizzando Angular.js o "viste statiche".