...
Прокси-контроллер служит прослойкой между внешней системой и виджетом отчета HCCP. Он проверяет параметры, переданные из виджета, и передает их в бэкенд HCCP, добавляя к ним заголовок аутентификации и другие данные, необходимые для работы стыковки.
Для логина (POST /login) необходимо реализовать метод, который будет передавать учетные данные в API HCCP. Пример реализации на Ruby:
| Code Block | ||
|---|---|---|
| ||
def login
request_params = {
url: URI.join(config.url, '/api/login').to_s,
method: :post,
payload: {
params: {
login: config.login,
password: config.password
}
}.to_json
}
render json: RestClient::Request.execute(request_params)
end
|
В результате метод должен вернуть фронтэнду полученный от API HCCP json.
Для остальных запросов GET запросов запросов запросов необходимо просто проксировать запросы. Для POST запросов необходимо добавлять hccp_auth_token. Пример прокси контроллера:
...
| Имя | Значение (пример) | Обязательный |
|---|---|---|
baseURL | URL по которому виджет выполняет запросы в API, может быть как полным адресом В первом случае виджет будет выполнять запросы к Во втором случае – | Нет |
locale | Язык, с которым будет инициализирован виджет ('ru') | Нет |
customerId | id абонента, которые должен отображаться в виджете | Да |
containerId | id элемента, в котором отобразится виджет('customer-widget-id') | Да |
...
| Code Block | ||||
|---|---|---|---|---|
| ||||
!!!
%html
%head
%script{type: "text/javascript", src: "http://localhost:3000/customerWidget.js"}
%link{rel: 'stylesheet', type: "text/css", href: "http://localhost:3000/customerWidget.css"}
%body
%div
%h1 Welcome
%p
#widget#customer-widget-id{style: 'width: 1000px; margin: 0 auto; font-size: 13px; border: 5px dashed lightgrey;'}
:javascript
document.addEventListener('DOMContentLoaded', () => {
HCCPCustomerWidget.render({
baseURL: '/hccp/',
locale: 'ru',
customerId: '50162901',
containerId: 'customer-widget-id',
});
});
|