醜い「2つのHTTP」を実行する代わりに、angular-in-memory-web-api
には2つのオプションがあります。
0.1.3からは、見つからないすべてのコレクション呼び出しを通常のXHRに転送する設定プロパティがあります。
InMemoryWebApiModule.forRoot(MockData, {
passThruUnknownUrl: true
})
これが行うのは、コレクションを見つけることができない要求を実際のXHRに転送することです。したがって、1つの選択肢は、メモリ内のデータベースからコレクションを削除することです(requried)。
class MockData implements InMemoryDbService {
createDb() {
let cats = [];
let dogs = [];
return {
cats,
// dogs
};
}
}
あなたは、DBから実際のバックエンドへのインメモリう今前方すべての犬の要求をdogs
コレクションを削除すると。
これは単なるコレクションレベルの修正です。しかし、さらに細かい制御が必要な場合は、メソッド・インターセプタを使用できます。
MockData
クラスでは、get
メソッドをオーバーライドするには、MockData
クラスにHttpMethodInterceptorArgs
引数を追加します。一例として、次のように
class MockData implements InMemoryDbService {
get(args: HttpMethodInterceptorArgs) {
// do what you will here
}
}
HttpMethodInterceptorArgs
の構造は(あなたがそれで何ができるかのアイデアを持っているだけのよう)です
HttpMethodInterceptorArgs: {
requestInfo: {
req: Request (original request object)
base
collection
collectionName
headers
id
query
resourceUrl
}
passThruBackend: {
The Original XHRBackend (in most cases)
}
config: {
this is the configuration object you pass to the module.forRoot
}
db: {
this is the object from creatDb
}
}
、ここにあなたならば、それは次のようになります。ちょうどすべてのリクエストを転送しました
get(args: HttpMethodInterceptorArgs) {
return args.passthroughBackend.createConnection(args.requstInfo.req).response
}
クール!正確に私は探しています。ありがとうございました!! – okeydoky