Stap 3: Sinatra neemt het podium!
Er zijn vele manieren om websites en webservices te maken. Van programmeertalen met web-ondersteuning van Bibliotheken, volledig-gekenmerkte kaders, kan het verwarrend en moeilijk om te kiezen voor deze job.
Ik heb gebruikt en speelde met een redelijk aantal van de technologieën voor webtoepassingen, en vind dat Sinatra is ideaal voor het bouwen van webservices en kleine websites. In het bijzonder wanneer ik het opbouwen van een webservice ter ondersteuning van een Arduino-gadget, is Sinatra een werkelijk goede keuze.
Wat is Sinatra, en waarom is het zo'n goede keuze? Ik ben blij dat u vroeg!
Sinatra is een taal voor de snelle ontwikkeling van webapplicaties. Het is gebouwd op de top van Ruby, een zeer populaire en expressieve General-Purpose scripting taal. Je mag Sinatra wordt aangeduid als een "DSL", een domein-specifieke taal horen. Het domein hier is het Web. De zoekwoorden (woorden) en de syntaxis gemaakt voor Sinatra is zodanig dat het maakt het gemakkelijk en snel voor mensen om het maken van webtoepassingen.
In een tijd waar de zogenaamde "eigenwijs" kaders voor web app development zoals Ruby on Rails en Django super populair zijn, vangt Sinatra het andere uiteinde van het spectrum. Hoewel Ruby on Rails en Django vereisen de programmeur te volgen een specifiek Verdrag en manier van doen (die, beurtelings, impliceert een steile en lange het leren kromme), maakt Sinatra geen dergelijke eisen.
Sinatra is conceptueel veel eenvoudiger dan de Rails en de Djangos van de wereld. U kunt krijgen gebruiksklaar met een web-applicatie die kan communiceren met uw Arduino binnen minuten.
Ik zal aantonen met een voorbeeld. Hier is wat een Sinatra minimal web app als kijkt (lees net het volgende voor nu, niet eigenlijk dit doen op uw computer omdat u waarschijnlijk niet de vereisten setup hiervoor nog):
In een enkel bestand, laten we noemen het my_app.rb, deze tekst toevoegen:
vereisen 'sinatra'
krijgt ' /' doet
"Hello, world!"
einde
Start de app als dit op de opdrachtregel:
ruby my_app.rb
Uw app zal beginnen, en ziet u deze tekst in de console:
Peter ruby my_app.rb
Puma 2.8.1 beginnen...
* Min draden: 0, max draden: 16
* Milieu: ontwikkeling
* Luistert op tcp://localhost:4567
== Sinatra/1.4.4 op zich heeft genomen de fase 4567 voor ontwikkeling met back-up van Puma
De app is nu klaar om te ontvangen van een client aanvragen. Open een browser, wijs het http://localhost:4567, en dit is wat u zult zien (zie screenshot bijgevoegd).
Dat is vier eenvoudige lijnen van code in een enkel bestand. In tegenstelling, gegenereerd Rails zouden moeten over honderd bestanden, gewoon om te voldoen aan de eisen van het kader. Begrijp me niet verkeerd, ik hou van Rails, maar echt?...
Dus, Sinatra is eenvoudig en snel uit te voeren. Mij zal veronderstellen dat je niets over Ruby, Sinatra en implementatie van de toepassingen naar de Cloud, weet zodat in de volgende sectie ik zal u stap voor stap van nul tot implementatie van de webservice van uw Arduino naar de wolk nemen.