在我的一生中,我无法InMemoryWebApiModule
使用适度简单的自定义 URL 解析器(特别是用于 OData)为我工作。
这是我的模块配置:
InMemoryWebApiModule.forRoot(MockApiService, { apiBase: 'api/', delay: 0, passThruUnknownUrl: true }),
这是我的服务:
import { InMemoryDbService, RequestInfoUtilities, ParsedRequestUrl } from 'angular-in-memory-web-api';
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class MockApiService implements InMemoryDbService {
constructor() {
}
public createDb() {
const stuff = [
{ id: 1, name: 'Windstorm' },
{ id: 2, name: 'Bombasto' },
{ id: 3, name: 'Magneta' },
{ id: 4, name: 'Tornado' }
];
return { stuff };
}
public parseRequestUrl(url: string, requestInfoUtils: RequestInfoUtilities): ParsedRequestUrl {
const isId = /^([^?]+?)\(([^?]*?)\)/.exec(url);
if (!!isId) {
const path = isId[1];
const parts = path.split('/').filter(_ => !!_);
const set = parts[parts.length - 1];
const key = isId[2];
console.log('Found with key');
return requestInfoUtils.parseRequestUrl(`/api/${set}/${key}`)
// Have tried all the below, too
// return requestInfoUtils.parseRequestUrl(`api/${set}/${key}`)
// return requestInfoUtils.parseRequestUrl(`/${set}/${key}`)
// return requestInfoUtils.parseRequestUrl(`${set}/${key}`)
}
return undefined;
}
}
这是我的要求:
api/stuff(1)
我的代码可以Found with key
使用正确的值记录set
and key
,但我仍然得到 404。
我究竟做错了什么?