angularcrudangular-in-memory-web-api

Angular In-Memory Web API with Embedded


I'm trying to use Angular In-Memory Web API. I have many API that are used as CRUD but the issue is that I have responses with embedded and pagination.

Here is an example of one of my CRUD:

readPage(externalId: string, page: number, size: number, sort: string, search: string): Observable<FooPage>;

The FooPage is declare like this:

export interface FooPage {
   embedded: {
      foos: Foo[]
   },
   _links: Link[],
   page: PageDetail
}

The readOne:

readOne(externalId: string, fooId: string): Observable<Foo>;

The create

createFoo(externalId: string, fooCreate: FooCreate): Observable<Foo>;

The update

updateFoo(externalId: string, fooId: string, fooUpdate: FooUpdate): Observable<Foo>;

Do you have any idea for using In-Memory Web API with this CRUD structure ? Are any advice about using another mock library ?


Solution

  • I found the solution by using this method:

    protected responseInterceptor(res: ResponseOptions, ri: RequestInfo): ResponseOptions;
    

    Then in this method I just have to set the response body as follow:

    res.body = {
      _embedded: {
        foos: res.body
      },
      page: {
        total_elements: foos.length
      }
    } as FooPage;