Как запросить действие удаления API в Angular - PullRequest
0 голосов
/ 02 апреля 2020

Таким образом, в моем проекте angular у меня есть вызов API в моем файле workspace.service.ts, и я смог создать другой запрос, такой как getWorkspace и createWorkspace и т. Д. c .., но не удалить запрос.

Я новичок в API Call или запрашиваю бэкэнд, но я думаю, что мне нужно сделать какой-то вызов для действий по удалению.

Так что я пытаюсь сделать в своем проекте, чтобы создайте кнопку удаления, которая позволит пользователю удалить текущее рабочее пространство.

export class Workspace {
    guid: string;
    name: string;
    description: string;
    type: WorkspaceType;
    userRole: WorkspaceRole;
    charts?: any[];
}
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { environment } from 'src/environments/environment';
import { first, tap } from 'rxjs/operators';
import { Workspace } from 'src/app/shared/models/workspace.model'; //Code above

export class WorkspaceService {

  loadedWorkspaces: Workspace[]

  constructor(private http: HttpClient) { }

  getWorkspace(guid: string) {
    return this.http.get<Workspace>(`${environment.api.chart}/workspaces/${guid}`).pipe(first());
  }

  getUserWorkspaces() {
    return this.http.get<Workspace[]>(`${environment.api.chart}/workspaces`).pipe(tap(workspaces => this.loadedWorkspaces = workspaces),first());
  }

  createWorkspace(workspace: Workspace) {
    return this.http.post<Workspace>(`${environment.api.chart}/workspaces`, workspace).pipe(first());
  }
  deleteWorkspace(workspace: Workspace){
    //Delete request

  }

Я не совсем уверен, что делать для deleteWorkspace, и я попытался скопировать код сверху и просто изменить метод HTTP на this.http.delete, но получаю сообщение об ошибке в «рабочем пространстве» и говорит: «Нет перегрузки, соответствует этому вызову».

1 Ответ

2 голосов
/ 02 апреля 2020

Вы можете просто передать идентификатор рабочей области для удаления рабочей области.

 deleteWorkspace(workspace: Workspace) {
    return this.http.delete<Workspace>(`${environment.api.chart}/${workspace.guid}`);
  }

ИЛИ

Если вы хотите передать тело в запросе на удаление, этот вопрос может вам помочь: Как добавить тело в Angular Функция удаления HttpClient

...