私はさまざまなサービスで Angular の $http モジュールをかなり多く使用してきましたが、それを Mulesofts RAML パーサーと統合したいと考えていました。これにより、RAML 仕様に適合するために角度の一部を更新する必要がないという利点が得られます。
誰かがこれをしましたか?必要な手順は何ですか?
これが不可能な場合は、RAML で説明されている REST リソースに $resource モジュールを使用するだけで十分だと思います。
ライブラリを AngularJS に統合することは完全に可能です。
あなたの場合はさらに簡単です-RAMLモジュールは、Angularが独自の約束に消費する約束を返します。これを使用し$q.when
て、ダイジェストサイクルの統合問題全体を無料で処理します。
RAML パーサーは次のように使用されます。
//example from the documentation
RAML.Parser.loadFile('http://localhost:9001/myAPI.raml').then( function(data) {
console.log(data)
}, function(error) {
console.log('Error parsing: ' + error);
});
Angular でうまく動作させるために必要なことは$q.when
、ダイジェスト サイクルへの統合を処理するものをラップすることだけです。
$.when(RAML.Parser.loadFile('http://localhost:9001/myAPI.raml')).then( function(data) {
$scope.someProp = data;
}).catch(function(error) {
throw error; //Angular promises log when you use throw instead of $q.reject
});
もちろん、きれいな Angular コードの場合は、それをサービスに抽出する必要があります。
重要なのは、RAML モジュールと Angular の両方が Promises/A+ 準拠の promise 実装を使用しているため、2 つを統合するのが非常に簡単であるということです。RAML は使用しQ
、Angular は $q と呼ばれるタッチダウン バージョンを使用します。