Я создаю веб-приложение в Angular (я новичок в Angular).
Я создаю форму для передачи новой информации о пользователе стороннему программному обеспечению через конечную точку API.
для публикации данных мне нужно передать name(new user)
email(new user)
user_key(mine)
и api_key (changes evry hour)
Чтобы получить новый api_key
, мне нужно опубликовать
POST: https://pi.pardot.com/api/login/version/3
message body: email=<email>&password=<password>&user_key=<user_key>
и это возвращает
<rsp stat="ok" version="1.0">
<api_key><api_key here></api_key>
</rsp>
Как только у меня будет новый ключ, я могу передать его с помощью сообщения формы для публикации данных.
Вопрос
Я думаю, мне нужна функция, которая запускается перед публикацией данных, которые дозируют публикацию, чтобы получить новую api_key
и изменяют переменную api_key
в моей новой пользовательской публикации.
поэтому главный вопрос заключается в том, как мне это сделать с помощью angular, я добавил свой текущий пост-контроллер ниже, который публикует новые пользовательские данные.
Мой контроллер
// submit button controller POST
// =============================================================================
FirstModule.controller('formController', function ($scope, $http) {
$scope.formData = {};
$scope.processForm = function (Fname, Lname, email) {
var data = {
Fname: $scope.formData.Fname,
Lname: $scope.formData.Lname,
email: $scope.formData.email,
api_key: 'changes every hr', //needs to be dynamic
user_key: 'my key'
};
//Call the services
$http.post('https://some api.com/api/prospect/version/4/do/create', JSON.stringify(data)).then(function (response) {
if (response.data)
$scope.formData = "Post Data Submitted Successfully!";
}, function (response) {
$scope.formData = "Post Data Submitted Failed";
$scope.statusval = response.status;
$scope.statustext = response.statusText;
$scope.headers = response.headers();
});
};
});
Моя форма
<form name="myForm" id="signup-form" class="col-sm-8 col-sm-offset-2"
ng-submit="processForm()"
ng-click="postdata(formData)">
<!-- our nested state views will be injected here -->
<div id="form-views" ui-view></div>
</form>
Итак, эта часть в порядке, но как мне запустить функцию до того, как она запустится, чтобы я получил последнюю версию api_key
? и что еще более важно, как я могу сделать это безопасно?
Это API Pardot.
Для безопасности я должен поставить все; Запрос API на поддерживаемом скрипте, возможно, на узле?