Как передать модель запроса для получения API на Angular 7/8? - PullRequest
1 голос
/ 08 февраля 2020

У меня есть Get Api для получения данных о пользователях, где я могу передать модель запроса для поиска в списке пользователей на основе модели запроса. Он работает нормально на Почтальоне, но пока я пытаюсь реализовать то же самое в Angular 7 и 8. Он не работает.

Пожалуйста, объясните мне, как я могу реализовать.

Моя реализация такая, как показано ниже

Почтальон

    URL = http://localhost:64888/api/Users/SearchUsers     
    Header : Content-Type = application/json

    Body = 
    {
        "firstname" : "value",
        "lastname" : "value",
        "emailid" : "value",
        "usertype" : "value",
    }

Почтальон Результат: Работает нормально и выдает список пользователей

Запрос модели

export class UserRequest {  
     firstname : string;
     lastname : string;
    emailid : string;
    usertype : string;
    }

Служба пользователя

    export class UserService {

      constructor(private http: HttpClient) { }

      SearchUsers(requestParam : UserRequest) : Observable<any>{  

        const httpOptions = {
          headers: { 
          'Content-Type': 'application/json',
          'Authorization' : 'Bearer Tokenvalue'
          },
          params: requestParam
        };

        return this.http.get("http://localhost:64888/api/Users/SearchUsers", httpOptions); 
      }
    }

Пользовательский компонент

   export class UserComponent implements OnInit {

     constructor(private userService : UserService) { }

     ngOnInit() {

       var requestParam : UserRequest;
       requestParam.firstname = "r";
       requestParam.lastname = "";
       requestParam.emailid = "";
       requestParam.usertype = "user";

       this.userService.SearchUsers(requestParam)
         .subscribe( 
           data => {
             console.log(data);
           }
          )
     }
   }

Ответы [ 2 ]

0 голосов
/ 08 февраля 2020

Попробуйте приведенный ниже код и замените его на UserService

export class UserService {

  constructor(private http: HttpClient) { }

  SearchUsers(requestParam : UserRequest) : Observable<any>{  

    const httpOptions = {
      headers: { 
      'Content-Type': 'application/json',
      'Authorization' : 'Bearer Tokenvalue'
      },
    };

    return this.http.get("http://localhost:64888/api/Users/SearchUsers+"?firstname="+requestParam.firstname+"&lastname="+requestParam+"&emailid="+requestParam.emailid +"&usertype="+requestParam.usertype ", httpOptions); 
  }
}
0 голосов
/ 08 февраля 2020

Если вы хотите отправить параметр в теле, тогда используйте запрос POST. В основном в GET запрос отправляется в URL, перейдите по этой ссылке посмотрите это

конвертируйте ваш запрос следующим образом

 SearchUsers(requestParam : UserRequest) : Observable<any>{  

    const httpOptions = {
      headers: { 
      'Content-Type': 'application/json',
      'Authorization' : 'Bearer Tokenvalue'
      }
    };

    return this.http.get("http://localhost:64888/api/Users/SearchUsers?firstname=value&lastname=value&emailid=value&userid=value", httpOptions); 
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...