私は Lucidworks Fusion (2.1.2) で作業を開始し、 Groovyで最も快適にハッキングできます。補足: Python の「リクエスト」はこれをシームレスに処理しましたが、私は頑固で Python を使いたくありません...
Fusion には有望なAPIがあり、Groovy で使用できることを楽しみにしています。
Groovy を使用して (Groovy っぽい方法で) Fusion で Fusion 認証済み API に接続するにはどうすればよいですか?
私はいくつかのアプローチを試しました(そして最終的にうまくいくものをいくつか見つけました)。基本的なRESTClientが機能しない理由についてのフィードバックと、他の「単純な」ソリューションを歓迎します。
これが私が試したものです:
groovyx.net.http.HTTPBuilder hb = new HTTPBuilder(FUSION_API_BASE)
hb.auth.basic(user, pass)
それは401の無許可で失敗します(私が信じているエンコーディングのため)。HTTPBuilder は gradle から来ました:
compile 'org.codehaus.groovy.modules.http-builder:http-builder:0.7.1'
私も試しました:
HttpPost httpPost = new HttpPost(url);
List <NameValuePair> nvps = new ArrayList <NameValuePair>();
nvps.add(new BasicNameValuePair("username", "sean"));
nvps.add(new BasicNameValuePair("password", "mypass"));
httpPost.setEntity(new UrlEncodedFormEntity(nvps));
CloseableHttpResponse response2 = httpclient.execute(httpPost);
そして得た:
{"code":"unauthorized"}
また試しました:
String path = '/api/apollo/introspect'
URL url = new URL('http', 'corp', 8764, path)
try {
def foo = url.getContent()
log.info "Foo: $foo"
} catch (IOException ioe){
log.warn "IO ERR: $ioe"
}
これにより、(現在予想される) IOError: 401 がスローされました。私の失敗に関する詳細情報が必要な場合は、私に知らせてください。膨大な量の技術的な詳細であなたを退屈させる可能性があります。
私は恥知らずに自分の質問 (以下) に答えていますが、そこにいるグルーヴィーな先生が私を少し啓発できることを願っています.
要約すると、以下で見つけたものよりも優れた/グルーヴィーなソリューションはありますか?