2012-02-26 6 views
0

Grailsのモデル、使用してGrailsのにウェブサービスのデータを統合:私はのは、書籍としましょうローカルDB(でいくつかのデータを持っている取得し、私はきちんとしてモジュラーな方法でフォロー状況を扱うことができる方法を知りたいと思った

、著者、レビュー)、1つ以上の外部WSからの情報でそのデータを強化する必要があります。(例えば、私は、データベースに本の出版年持っていないので、私はWSから、ユーザがブックを望んでいるたびにそれを取得する必要があります)

  1. エンティティのプロパティを強化:異なるシナリオが存在することができ
  2. が処理するための最良の方法は何

(例えば、各書籍のために、私は地元でのいくつかのレビューを持っているが、私は外部のWSからそれらの多くを得ることができます)DBからとWSSからのエンティティを連携Grailsのこの問題?

答えて

0

質問は(私たちは、あなたが消費しようとしているWebサービスの種類を知りません)少し広いが、私は、私は希望を推測:

  • 使用groovyWS各消費Webサービスのために、彼らはSOAPベースである場合あなたが望むならRest pluginを使うことができますが、それはしばらくの間更新されていないようです...)
  • 両方を照会するロジックを扱うGrailsサービスを作成しますローカルデータベースとWebサービス...

    class BookService { 
    
        def bookWS 
    
        def findByAuthor = { author -> 
         def books = [] 
         // From local db 
         books << Book.findAllByAuthor(author); 
    
         // From a webservice 
         books << bookWS.findBooksByAuthor(author); 
         return books 
        } 
    
    } 
    
  • 私のコントローラのアクションで答えを

    class BookController { 
        def bookService 
    
        def list() { 
         def author = Author.findByName(params.author) 
         [allBooks : bookService.findByAuthor(author)] 
        } 
    } 
    
+0

おかげで、私の地元のブックサービスを使用してください。しかし今、本物の疑問があります。本はどのようなものを返すべきですか? JSONオブジェクト(REST + JSONを想定)?ブックモデルですか?基礎となるデータソースから抽象化するために中間のBookクラスを作成する方が良いでしょうか? – Mario

+0

私の例では、あなたのWSスタブ(bookWS)にリモートWebサービスの応答をgrailsアプリケーションのブックモデルに変換するメソッドがあると仮定しています。変換のロジックはあなた次第です... – Philippe

+0

ここに例があります:http://groovy.codehaus.org/Using+the+client+with+complex+objects – Philippe

関連する問題