Come ottengo l’elenco delle rotte?
Come in Rails, per ottenere l’elenco delle rotte è sufficiente scrivere nel terminale hanami routes.
Come funziona un controller / azione con Hanami?
La documentazione del controller è disponibile su github.com/hanami/controller.
In Hanami ogni azione è una classe.
Per cui per ogni azione abbiamo la possibilità di istanziare e testare in modo specifico un oggetto.
Questo permette un controllo decisamente granulare dell’avvenimento che viene gestito.
In fase di test quindi è possibile creare una istanza della classe e interrogarla senza attraversare l’intero stack di chiamate come avviene quando si testa un controller con Ruby On Rails.
Di seguito un esempio dalla documentazione:
class Show
include Hanami::Action
def call(params)
# ...
puts params # => { id: 23, key: 'value' } passed as it is from testing
end
end
action = Show.new
response = action.call({ id: 23, key: 'value' })
Cosa ritorna un controller di Hanami quando viene usato oppure testato?
Una Action di Hanami ritorna una Rack::Response.
Questo significa che all’interno dell’oggetto restituito vi sono 3 elementi all’interno di un array:
- status
il codice http che l’azione ha restituito (ad esempio: 200 nel caso l’azione sia andata a buon fine; 400 in caso di errore in fase della richiesta etc) - headers
le intestazioni della chiamata, solitamente sono dei metadati utili in generale per il flusso dell’applicazione - body
contiene il corpo della risposta
# Un esempio di utilizzo di una action con relativa risposta:
action.call({}) # => [200, { "X-Dato" => "OK" }, ["Ciao!"]]
Rispondi