2

I created this basic data service for todos:

import { InMemoryDbService } from 'angular-in-memory-web-api';
import { Todo } from './todos.service';

export class TodosData implements InMemoryDbService {

createDb() {
    const todos: Todo[] = [
        {
            id: 1,
            title: 'TODO 1',
        }
    ];
    return { todos };
}

}

Here is how the service is consumed:

const apiUrl = 'api/todos/'

// CREATE
create(todo: Todo){return this.http.post<Todo>(apiUrl, {...todo, id: null})}

// UPDATE
update(todo: Todo){return this.http.put<Todo>(apiUrl + todo.id, todo)}

When subscribing on the create fn (POST), then the new Todo is returned.

But when subscribing on the update fn (PUT), then null is returned.

Is that a bug or a feature?

When refreshing the list (GET) then the updated Todo is there as expected.

Is there a way to let the PUT also return the updated TODO instead of null?

spierala
  • 2,349
  • 3
  • 25
  • 50

1 Answers1

1

Found a solution here: Correct way to do a PUT or POST in angular-in-memory-web-api

PUT does not return by default.

But it can be enabled: HttpClientInMemoryWebApiModule.forRoot(TodosData, { put204: false }),

spierala
  • 2,349
  • 3
  • 25
  • 50