@d2207

Как работать с API Dadata?

Хочу написать на ангуляре форму с подсказками от сервиса dadata. Есть два варианта: воспользоваться готовым решением на их сайте или написать POST запрос самостоятельно. Я решил что буду писать POST самостоятельно т.к. там же на сайте есть пример кода. Вообщем получаю от сервера 400 ошибку - а где у меня проблема в синтаксисе не понятно.
family: "CLIENT_ERROR", reason: "Bad Request", message: "Cannot construct instance of `ru.hflabs.sgt.model.…p.AbstractHTTPDestination$1); line: 1, column: 1]"

TS:

export class AppComponent {
  suggest: any;
  URL = 'https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address';
  token = 'f6bf5c998d0e4fcd58cea3b241763e01fe918127';
  body = '';
  options = {
    method: 'POST',
    mode: 'cors',
    headers: {
      'Content-Type': 'application/json',
      Accept: 'application/json',
      Authorization: 'Token ' + this.token
    },
      body: JSON.stringify(this.body)
  };

  constructor(private suggestService: DadataSuggestService) {  }
  getSuggestion(postBody): any {
    this.body = JSON.stringify(postBody);
    this.inputSuggestion();
    console.log(postBody);
    console.log(this.suggest);
  }

  inputSuggestion(): void {
    this.suggestService.takeSuggestion(this.URL, this.body, this.options)
      .subscribe(results => this.suggest = results);
  }
}
  • Вопрос задан
  • 1159 просмотров
Пригласить эксперта
Ответы на вопрос 1
@XOlegator
Программист PHP
Работает такой вариант на голом JavaScript:
var dadataToken = ""; // Put your token
var search = ""; // Put your search string

var xhr = new XMLHttpRequest();

xhr.open(
    'POST',
    'https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address',
    true
);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("Authorization", "Token " + dadataToken);

xhr.send(JSON.stringify({"query": search}));

xhr.onload = function () {
    if (xhr.readyState === 4 && xhr.status === 200) {
        var jsonResponse = JSON.parse(xhr.responseText);
        if (jsonResponse.suggestions) {
            window.console.log("jsonResponse.suggestions = " + JSON.stringify(jsonResponse.suggestions));
        }
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы