Вызов API Typescript Rest API с параметром JSON - PullRequest
0 голосов
/ 24 апреля 2018

Я пытаюсь найти пример кода для отправки запроса POST в REST Api с JSON в качестве параметра и получения ответа и любых кодов исключений / ошибок в Typescript.

Ответы [ 4 ]

0 голосов
/ 24 апреля 2018

Библиотека справится? Стоит взглянуть на node-fetch, fetch-as, make-fetch-happen, а что нет.

0 голосов
/ 24 апреля 2018

Вы можете начать с чего-то подобного

Сервис

export class MyService{
  constructor(
    private httpClient: HttpClient) {
  }

   getSomethingFromServer():Observable<any>{
       return this.httpClient.get('you_request_url');
   }
}

Компонент

constructor(
    private myService: MyService) {
  }

  this.myService.getSomethingFromServer().subscribe(response => {
     // do whatever you want with the response
  }, error => {
     // handle error here
     // error.status to get the error code
  });
0 голосов
/ 24 апреля 2018

Сначала установите заголовки следующим образом, «userIdAuthToken» должен быть токеном, возвращенным из службы безопасности

this.httpOptions = {
  headers: new HttpHeaders({
    'Content-Type': 'application/json',
    'Authorization': 'Bearer ' + this.userIdAuthToken
  })
};

Тогда сделайте ваш запрос,

private _http: HttpClient      // goes in constructor

let saveRequest = this._http.post<Project>(
  this.apiUrl + '/project' + '/post',
  JSON.stringify(data),
  this.httpOptions);

saveRequest будет наблюдаемым, поэтому вам нужно подписаться на него в вашем компоненте

0 голосов
/ 24 апреля 2018

// Окончательный рабочий код. Вы должны поддерживать сервис для вызова API и вызывать его из Component.ts

публичный пост (a: строка, данные: строка): наблюдаемый {

const options = new RequestOptions({
  headers: this.getAuthorizedHeaders(),
  responseType: ResponseContentType.Json,
  withCredentials: false
});

return this.http.post(this.BASE_URL, JSON.stringify({ var: a, data: data}), options)
  .map(this.handleData)
  .catch(this.handleError);

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...