Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    24

    web services con soap in rails

    Salve, qualcuno sa se in rails 2 è possibile realizzare web services con soap?
    Ho trovato delle guide che parlano di Actionwebservice ma con Rails 2 non mi funziona, cioè quando cerco di eseguire il comando
    codice:
    ruby script/generate web_service nomeWS nomeMetodo1, ... , nomeMetodon
    mi dice che non trova lo script.
    Con rails 1.2.6 lo script viene eseguito ma mi dice quanto segue:

    ./script/../config/boot.rb:20:Warning: Gem::SourceIndex#search support for Strin
    g patterns is deprecated
    :0:Warning: Gem::SourceIndex#search support for Regexp patterns is deprecated
    create app/apis/
    exists app/controllers/
    exists test/functional/
    create app/apis/ws_api.rb
    create app/controllers/ws_controller.rb
    create test/functional/ws_api_test.rb

    La parola deprecato mi fa' pensare che è meglio cercare un'altra soluzione.

    Ho letto anche qualcosa su Activeresource però li si parla di REST e a me servirebbe SOAP.

    Suggerimenti??

    Grazie in anticipo.

  2. #2
    Actionwebservice era un componente di Rails 1.2.x, ucciso a partire da Rails 2.x dato il proseguire di Rails sulla scia REST invece che SOAP.

    ActiveResource non fa al caso tuo. Serve per consumare un web service, non per esporlo.

    Rails 2.x offre in bundle tutto quello che serve per creare un web service ma di tipo REST, non SOAP.
    Tra l'altro, opinione personale, REST è decisamente preferibile a SOAP.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    24
    Weppos, prima di tutto grazie per la risposta. Poi scusa l'ignoranza, ma cosa s'intende x in bundle?

    Leggendo qua e la mi sembrava di aver capito che SOAP ormai la facesse da padrone per i WS. Forse a causa della mia poca esperienza davo quasi per scontato che un framework come Rails mettesse a disposizione strumenti basati su tale protocollo.

    Tu come la vedi?

  4. #4
    In bundle significa di default.
    Rails si è volutamente distaccato dall'approccio SOAP in quanto avrebbe duplicato il codice necessario per ottenere un web service, considerate le caratteristiche attuali del framework.

    Per capire meglio quello che intendo, prova a generare ad esempio uno scaffold.
    Noterai che il controller supporta di default sia chiamate HTML sia chiamate XML, tipiche di un web service.

    Osserva questa action.

    codice:
    class ClientsController < ApplicationController
    
      def index
        @clients = Client.all
    
        respond_to do |format|
          format.html # index.html.erb
          format.xml  { render :xml => @clients }
        end
      end
    
    end
    Come potrai notare risponde sia a html sia a xml.

    http://localhost:3000/clients
    http://localhost:3000/clients.xml

    Di fatto, hai già un web service incorporato senza bisogno di metterti ad usare SOAP.
    Puoi inviare chiamate POST, PUT, DELETE ai metodi corrispondenti per interagire via XML con la tua applicazione senza dover creare 1 riga di codice aggiuntiva (prsonalizzazioni escluse).

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    24
    Si, in effetti avevo letto l'articolo su HTML.it, io avrei la necessità di ricostruire un oggetto a partire da un messaggio e viceversa.
    Secondo te è possibile farlo usando REST?
    Come utilizzo l'xml recuperato, come faccio il parsing?

  6. #6
    Originariamente inviato da lallacat
    Si, in effetti avevo letto l'articolo su HTML.it, io avrei la necessità di ricostruire un oggetto a partire da un messaggio e viceversa.
    Secondo te è possibile farlo usando REST?
    Come utilizzo l'xml recuperato, come faccio il parsing?
    Potresti chiarire meglio il contesto? Chi deve agire come un web service? Chi come client?
    Con quali linguaggi? Quali azioni deve fare?

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    24
    Ok, allora, utilizzando Ruby ho implementato una bag di tuple. In questa bag naturalmente le tuple possono essere inserite ( metodo OUT(tuple) ) e recuperate ( metodo IN(template) ). Il primo step del mio progetto consiste nell'esporre questa bag su un server in modo che un client possa fare le OUT e le IN da remoto inserendo e recuperando le tuple.
    In principio avevo usato le librerie 'soap/rpc/standaloneServer' e 'soap/rpc/driver' di Ruby per fare ciò, (anche in quel caso mi venivano restituiti degli errori che non avevo capito), poi mi è stato chiesto di capire come si poteva realizzare la cosa usando Rails.
    Sono ancora alle prime armi e quindi disorientato con Rails e devo entrare ancora bene nell'ottica giusta, cmq questo è il mio primo obiettivo.
    In effetti dovrei anche vedere bene dove e come realizzare questa bag con i models, db, etc... però una cosa alla volta.

    Spero di essere stato chiaro.

  8. #8
    Beh, in questo caso il discorso cambia.
    Io pensavo tu avessi già un progetto Rails che volevi esporre come web service. Ma se devi cominciare da zero, premesso che prima dovresti avere bene le idee chiare su Rails, Rails potrebbe non essere la scelta più efficace.

    Ad esempio, hai provato a dare uno sguardo a Sinatra?
    http://www.sinatrarb.com/

    Se decidi di proseguire con Rails dovresti prima avere ben chiaro le modalità di interazione dall'esterno.
    SOAP è uno dei modelli di comunicazione, ma prima di capire quale modello utilizzare a mio avviso dovresti avere ben chiare le modalità di interazione e comunicazione. A quel punto sceglierai con quale protocollo comunicare.

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    24
    Mille Grazie Weppos, do uno sguardo a Sinatra... sembra interessante

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.