Home » Hanami.rb – Primo approccio

Hanami.rb – Primo approccio

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!"]]


Pubblicato

in

da

Tag:

Commenti

Rispondi