Come Creare un'API REST con Ruby on Rails

Impara a costruire e deployare una semplice API per gestire utenti usando Ruby on Rails, passo per passo.

Come creare API REST con Ruby on Rails

Ehi, immagina di essere al bar con me, Stefano, mentre ti racconto come ho risolto quel casino con le API. Come creare api rest con ruby on rails è stato il mio ultimo trucco per un progetto freelance, e te lo passo così come l'ho fatto io, senza fronzoli. Il punto è che gestire dati utente può essere una rottura se non sai da dove partire, ma con Rails è una passeggiata se segui i passi giusti.

Ma andiamo al sodo: oggi costruiamo una API REST semplice per crud su utenti, tipo creare, leggere, aggiornare e cancellare record. È roba basilica, ma utile per partire.

Prima di tuffarci, assicurati di avere Ruby installato, diciamo la versione 3.1 o superiore, e Rails, io uso la 7 perché è stabile e non mi ha mai tradito. Ah, e Git per il versionamento, altrimenti ti perdi nei commit. Ok ma, se non ce l'hai, installa tutto via terminale; è questione di un comando o due.

E ora, entriamo nel vivo. Inizia creando un nuovo progetto Rails. Apri il terminale e scrivi questo: rails new user_api --api. Questo setup è veloce, crea solo l'essenziale per un'API, senza il casino del frontend. Io preferisco così perché evita di caricare roba inutile che rallenta il deploy.

Poi, genera il modello per gli utenti. Digita rails g model User name:string email:string. Ecco, questo crea il file per il database. Ma attenzione, la fregatura è che devi migrare il database dopo. Esegui rails db:migrate per renderlo effettivo. L'ultima volta che ho skipppato questo passo, mi sono giocato il weekend a debuggare errori stupidi, quindi non fare come me.

Ok, ora pensiamo al controller. Rails ha un generatore anche per questo: rails g controller Users. Dentro il file app/controllers/users_controller.rb, aggiungi le azioni per le operazioni CRUD. Per esempio, per l'indice: def index; render json: User.all; end. È semplice, ma sul serio, render json è magico per outputtare dati in formato API.

E per le routes? Apri config/routes.rb e scrivi: resources :users. Fatto, ora hai le rotte automatiche. Ma hey, se vuoi personalizzare, tipo solo GET e POST, modifica pure; io preferisco tenere tutto per non dovermi stressare dopo.

A questo punto, testiamo. Avvia il server con rails s e vai su localhost:3000/users. Dovresti vedere la lista vuota. Prova a creare un utente via Postman o curl: invia un POST con { "name": "Stefano", "email": "stefano@example.com" }. Funziona? Grande, ma se no, controlla i log, è lì che si nascondono i guai.

Passaggi per il deploy

Come creare api rest con ruby on rails non finisce qui, dobbiamo deployarla. Usa Heroku, è facile per i principianti. Prima, aggiungi il gem nella Gemfile: gem 'pg' per il database, poi bundle install.

Crea un'app su Heroku via CLI: heroku create my-user-api. Pusha il codice con git push heroku main. E per il database, heroku run rails db:migrate. Io ho provato altri servizi, ma francamente Heroku fa schifo per cose complesse, però per un tutorial come questo è ok.

Problemi comuni e trucchi

Ma ecco una cosa: a volte i permessi HTTP ti bloccano, tipo CORS. Aggiungi il gem 'rack-cors' e configura in config/initializers/cors.rb. È una rottura, ma necessaria se la tua API parla con un frontend.

E per finire, vai su heroku open e testa l'API live. Se tutto va, hai una API deployata e funzionante. Prova tu stesso, aggiungi un utente e vedi se resta.

Ah, un'ultima cosa: se stai leggendo questo, ricordati che la programmazione è come una birra, va assaggiata piano per gustarla bene.

Ti serve una soluzione simile?

Descrivimi il problema. Ne parliamo in una call gratuita di 30 minuti.

Contattami
← Torna al blog