Метод углового поста с параметрами int?

#angular #http #url #post #rest

Вопрос:

Я пытаюсь передать три параметра с помощью Angular для своего бэкенда с помощью метода post. Все три параметра должны быть целыми числами, по одному числу в каждом. Это просто не хочет работать. Вот что я получил до сих пор:

data.service.ts

   bookRoom(user_id, room_id, date_id) {
    
    return this.http.post('http://127.0.0.1:8000/api/bookRoom/',user_id  '/'  room_id  '/'  date_id);
  }
 

bookroom.component.ts (передача параметров в data.service.ts)

   bookRoom() {
    this.dataService.bookRoom(1,2,4).subscribe(res => {
      console.log(res);
    })
  }
 

Я хочу, чтобы все было так просто, просто возьмите мои три параметра и поместите их в мой метод post. Есть ли какой-нибудь способ заставить это работать таким образом?

Мой URL-адрес должен выглядеть, например:

 http://127.0.0.1:8000/api/bookRoom/1/2/4
 

Я был бы очень рад, если бы вы могли показать мне, как это реализовать в Angular. Большое спасибо!

введите описание изображения здесь

Проблема с передачей строки:

введите описание изображения здесь

Комментарии:

1. почему бы тогда просто не поместить их в URL-адрес с интерполяцией? return this.http.post(`http://127.0.0.1:8000/api/bookRoom/${user_id }/${room_id} /${date_id}`)

2. О, хорошо, это 1, а не 4, так что вы можете передать все, что хотите, в качестве тела или просто оставить его пустым-например: return this.http.post(`http://127.0.0.1:8000/api/bookRoom/${user_id }/${room_id} /${date_id}`, {})

3. Ха-ха рад, что смог помочь: -) Я также предоставлю его в качестве ответа, чтобы вы могли отметить его как решенный

4. Вы можете использовать охранников маршрута: angular.io/guide/router#preventing-unauthorized-access . Но я предлагаю вам задать еще один вопрос с подробностями 🙂

5. Большое тебе спасибо, мой друг! Ты действительно потрясающая. Да благословит господь.

Ответ №1:

Для этого вы можете использовать интерполяцию строк (с пустым телом, поскольку это требуется для метода post) — например:

 return this.http.post(`http://127.0.0.1:8000/api/bookRoom/${user_id }/${room_id} /${date_id}`, {})
 

Комментарии:

1. Определенно решил мою проблему, супер и полезный ответ!