Topic: Автоматическое подставление реквизитов организаций

Есть в инете сервис dadata.ru
Он позволяет закачивать в приложения полные реквизиты организаций, например, по их ИНН.
Позволяет экономить кучу времени автоматически заполняя поля базы данных.
Сервис бесплатный для 10000 запросов в день.
Т.е. - совсем бесплатно smile
На этом сайте есть много готовых модулей как для конкретных программ, так и для языков программирования.
Но, для DELPHI ничего нет.
Подскажите, пожалуйста, можно ли как то прикрутить этот сервис к MVD?

Re: Автоматическое подставление реквизитов организаций

примеры подобного взаимодействия по api
http://myvisualdatabase.com/forum/viewtopic.php?id=5683
http://myvisualdatabase.com/forum/viewtopic.php?id=5433

Re: Автоматическое подставление реквизитов организаций

Посмотрел документацию, можно взаимодействовать с API с помощью GET и POST запросов, но там данные передаются через http заголовки, поэтому мне нужно будет доработать функцию HTTPPost, чтобы можно было вставлять свои данные в заголовок запроса, чуть позже попробую это реализовать.

Dmitry.

Re: Автоматическое подставление реквизитов организаций

Скачайте пожалуйста последнюю бета версию
https://www.dropbox.com/s/glp1jd8xqjx9x … a.zip?dl=0


Пример работы с dadata.ru
Обратное геокодирование (адрес по координатам) - https://dadata.ru/api/geolocate/


procedure Form1_Button5_OnClick (Sender: TObject; var Cancel: boolean);
var
   slParam: TStringList;
   API_KEY: string;
   sResult: string;
begin
    API_KEY := 'ВАШ API КЛЮЧ';

    slParam := TStringList.Create;
    slParam.Add('{ "lat": 55.878, "lon": 37.653 }');

    Form1.idHTTP.HTTPOptions := hoKeepOrigProtocol;
    Form1.idHTTP.Request.ContentEncoding := 'UTF-8';
    Form1.idHTTP.Request.ContentType:='application/json';
    Form1.idHTTP.Request.Accept:='application/json';
    Form1.idHTTP.Request.CustomHeaders.Text := '';
    Form1.idHTTP.Request.CustomHeaders.Add('Authorization: Token ' + API_KEY);
    sResult := Form1.IdHTTP.Post('https://suggestions.dadata.ru/suggestions/api/4_1/rs/geolocate/address', slParam);
    Form1.Memo1.Text := sResult;

    slParam.Free;
end;

в компонент Memo получаете ответ с сервера.

Dmitry.