Sinatra vs Rails voor webservice

Ik zoek een webservice. Een eenvoudig voorbeeld van hoe een gebruiker met deze service omgaat is gebruikersaanmelding. Een gebruiker kan op de service klikken om een ​​account te maken (als deze mobiel is). Aan de andere kant kunnen gebruikers zich aanmelden (vanuit een mobiele app) naar de toepassing via de service. Nu is deze service bedoeld voor een bestaande rails-applicatie. Mijn plan is om een ​​sinatra-app te bouwen binnen deze rails-app en te monteren als een rails-engine: deze app zal communiceren met mijn bestaande rails-modellen om de juiste json te produceren/consumeren. Zou dit een goede aanpak zijn? Heeft iemand dit eerder geprobeerd? Dank je.

1

3 antwoord

Ik heb deze benadering gebruikt: Rails met Sinatra-routes. Als je een RESTful api aanlevert, zou ik ook aanraden om te kijken naar het Sintra-achtige, api-specifieke framework Grape . Deze link laat zien hoe je Grape in een een Rails-app. Veel succes.

2
toegevoegd

"Voortijdige optimalisatie is de wortel van al het kwaad."

Ga alleen op de Sinatra-route als je snelheid nodig hebt. Uw rails-app kan bijvoorbeeld heel wat onnodige berekeningen doen in de toepassingscontroller die u wilt overbruggen in een mobiele app. Toch zou ik er echt zeker van zijn dat het de reactietijd op de mobiele client opneemt voordat ik het Sinatra-pad begon. Het afscheren van 10 milliseconden in de responstijd is waarschijnlijk niet de tijd van alle ontwikkelaars waard, tenzij je een spel aan het ontwikkelen bent of iets anders dat zeer interactief is.

Omdat je een bestaande Rails-app hebt, gebruik je Rails. Het heeft al de meeste code die je nodig hebt. U hoeft alleen maar een aantal JSON-views te schrijven. Dat is een stuk eenvoudiger en gemakkelijker te onderhouden dan een parallelle Rails/Sinatra-stack.

2
toegevoegd

Ik denk dat je gewoon van Rails af moet komen en het gewoon vergeet. Gebruik gewoon Sinatra voor je app, en gewoon pure Rack wanneer je maar kunt voor je middleware.

In tegenstelling tot wat vaak wordt gedacht, kun je eenvoudig grote applicaties bouwen met Sinatra, de internals kunnen op elke gewenste manier worden georganiseerd.

Rails is traag. Waarom loop je niet gewoon snel iets voor alles? Er is absoluut niets wat je niet kunt doen met Sinatra en pure Rack, het is ongelooflijk flexibel.

0
toegevoegd