私のループバックアプリケーションでサードパーティのRESTサービスからデータを取得したいと思います。サービスからデータを取得するには、まずログインとパスワードで認証する必要があります。私はカールを使ってサービスをテストできます:ループバック:RESTコネクタを使用してjsonデータでリクエストを送信
curl -b cookies -c cookies -X POST -d '{"auth": {"username":"MyUser","password":"Secret"}}' 'http://api.awesome.service.com/'
それは素晴らしいです。 tcpdumpのショーは、そのように要求します。
Host: http://api.awesome.service.com/
User-Agent: curl/7.47.0
Accept: */*
Cookie: HBFAPI_SESSID=hbapi%3A197887%3A58a3028d12c36%3Anym2
Content-Length: 58
Content-Type: application/x-www-form-urlencoded
{"auth":{"username":"MyUser","password":"Secret"}}
だから、私は最初のデータソースを作成しました:
{
"awesome_datasource": {
"name": "awesome_datasource",
"baseURL": "https://api.awesome.service.com/",
"crud": false,
"connector": "rest",
"operations": [{
"template": {
"method": "POST",
"url": "http://api.awesome.service.com/auth",
"form":{
"auth": {
"username": "{username:string}",
"password": "{password:string}"
}
},
"json": true
},
"functions":{
"login": ["username", "password"]
}
}]
}
}
私はエクスプローラを使用していることをテストしました。私が何をしていても、jsonとしてフォーマットされたリクエストボディでデータを取得することはできません。有無にかかわらず、JSONオプション結果はtcpdumpの中にある、これと同じである:
host: api.awesome.service.com
content-type: application/x-www-form-urlencoded
accept: application/json
content-length: 66
Connection: close
auth%5Busername%5D=MyUser&auth%5Bpassword%5D=Secret
私は「クエリ」、「フォーム」または「データ」のオプションとして渡すパラメータを試してみました。さまざまなヘッダーのコンテンツタイプのオプションもチェックされていますが、これまでのところ運がありません。
モデルはパラメータなしで簡単です。 (私は可能な限りシンプルにそれを維持したいので、何もユーザー)ベースモデルは「モデル」ではありません
私はこのスレッドを見つけることができたが、それは多くの助けではなかった。
https://github.com/strongloop/loopback-connector-rest/pull/12
何かアドバイスをします大変感謝しています。
私は身体、質問、およびフォームについて知っていました。私はちょうどjsonについて知らなかった。ありがとう。それはほとんど動作しますが、ヌルのでプレースホルダを置き換えます。 {「AUTH」:{「ユーザ名」:ヌル、「パスワード」:ヌル}} 私は「身体」を使用してealierそれを解決したが、私のように値を渡す必要があります。 { "username":...、 "password":... } これは少し不快です。 – user5926024