2017-04-08 10 views
0

私はGGTSを使用して作成された空のプロジェクトを持っています。私のアプリケーションは正常に動作しています。RESTクライアントGrails Groovyがクラスを解決できませんRestClientBuilder

私はREST APIを呼び出してデータを消費する必要があります。必要なプラグインを読み込み、依存関係の下にあるBuildConfigファイルに追加して、プラグインセクションの下にあるものは動作していないようです。

compile ":rest-client-builder:2.0.0" 

私はコントローラを作成しました、私はどこここにインポートを追加するか分からないので、私が試した:

package myapp 


class UserController { 

    def index() { 
     import grails.plugins.rest.client.RestBuilder 
     String url = "https://foo.com/batch/$id" 
     def resp = new RestBuilder().get(url) { header 'Authorization', 'Basic base64EncodedUsername&Password' } 

     render resp 
    } 

が、私はエラーを取得:クラスを解決することができません。 ...

APIはJSONデータを返していますが、これまでに行ったことは、新しいGrailsプロジェクトを作成し、コントローラを追加し、ビューを追加してから依存関係を追加することです。

ビルドされたプロジェクトを何回もクリーニングしましたが、エラーは残ります。

ありがとうございました。 ...ない

答えて

0

輸入は、パッケージライン

とクラスラインも

前にした後、トップ

で行くのGrailsのバージョンに応じて、あなたはggtsの移動したい場合がありますそれ以上サポートされていることを確認してください...

+0

おかげで、私はそこにインポートを置くが、私は、今、以前と同じ問題をクラスgrails.plugins.rest.client.RestBuilderを解決することができませんでし取得します。 ggtsの代わりに何をお勧めしますか?ありがとう!! – fabian278

0

あなたのbuild.gradle依存関係に問題があると思います。

あなたのbuild.gradleファイルに次の行を挿入し、私はそれが参考になると思う:

compile "org.grails.plugins:rest-client-builder:2.1.1" 

詳細についてはgrails plugin documentation.

に続くすべてのビジネスロジックを配置しなければならないことに注意してください。サービスレイヤではなくコントローラ内に存在します。可能な限りコントローラを傾けたままにすることがベストプラクティスです。静的な最終文字列

static final String url = "https://foo.com/batch/" 

としてコントローラのbegginingに

String url = "https://foo.com/batch/$id" 

とコードで必要なときに$ IDを追加します。

もう1つのベストプラクティスは、次の行を定義することです。ここで

は、それがメソッドの内部で呼び出されるべきかです:

String url = "${url}/{$id}" 
+0

Rotem、あなたの答えをありがとう、これは私の最初のGrailsアプリであり、どのように動作するのかわかりません。 buildconfig.groovyファイルにこの行を追加しましたが、私のプロジェクトのどこにでもbuild.grandleファイルが見つかりません。 また、ビジネスロジックを追加する場所がわかりません。ドメインクラスか通常のクラスですか? – fabian278

+0

この場合、あなたはgradle構築ツールに慣れていないので、次のドキュメントを読むことをお勧めします。 https://docs.gradle.org/current/userguide/tutorial_java_projects.html。 webappディレクトリの下にbuild.gardleファイルを設定する必要があります。あなたがサービスに精通していない場合は、今のところそれを残してください、それは良い習慣ですが、必須ではありません。 – Rotem

関連する問題