Skip to content

Instantly share code, notes, and snippets.

@wbarcovsky
Last active April 15, 2021 10:35
Show Gist options
  • Select an option

  • Save wbarcovsky/1186705d02cd9bf2e41bc705fd44a778 to your computer and use it in GitHub Desktop.

Select an option

Save wbarcovsky/1186705d02cd9bf2e41bc705fd44a778 to your computer and use it in GitHub Desktop.

Для отправки API - запросов можно воспользоваться одним из приведенных ниже способов

Отправка с использованием утилиты curl

Для ручной отправки запросов на системах семейства linux и macOs можно воспользоваться консольной утилитой curl (https://curl.se/ https://github.com/curl/curl)
При отправке запроса необходимо добавить в запрос заголовок Conntent-type cо значением application-json

Примеры запросов с использованием утилиты curl

  • Запрос получения списка актуальных событий:
curl --header "Content-Type: application/json" \
  --header "Authorization: Bearer my-auth-token" \
  --request GET \
  https://bel.sport/api/1.0/events?nearestActualDate=true
  • Запрос подписки на новостную рассылку на портале
curl --header "Content-Type: application/json" \
  --header "Authorization: Bearer my-auth-token" \
  --request POST \
  --data '{"email":"subscribe@me.ru","from":"footer"}' \
    https://bel.sport/api/1.0/subscribers

Отправка запроса из приложения портала

Для отправки запросов из портала используются специальные библиотеки, позволяющие отправлять динамические запросы на сервер, например axois.js (https://www.npmjs.com/package/axios)

Примеры запросов с использованием библиотеки axios

  • Запрос получения списка актуальных событий:
const response = await axios.get('https://bel.sport/api/1.0/events?nearestActualDate=true', {
  headers: {
    'Content-Type': 'application/json'
  }
});
return response.data.json 
  • Запрос подписки на новостную рассылку на портале:
const response = await axios.get('https://bel.sport/api/1.0/subscribers', { 
  email: "subscribe@me.ru",
  from: "footer"
}, {
  headers: {
    'Content-Type': 'application/json'
  }
});
return response.data.json 

Авторизация при отправке запроса

Для доступа к некоторым функциям на портале, необходимо предварительно авторизоваться.
Для авторизации на портале необходимо отправить отравить POST запрос в формате 'multipart/form-data' с полями 'email' и 'password' на url https://bel.sport/auth/login/local?redirectTo=some_url.
Результатом запроса будет редирект с query параметром auth на страницу указанную в redirectTo.
Он может принимать два значения success и failed, в зависимости от результат запроса - успешная авторизация или ошибка в логине или пароле.
При выполнении запросов к api встроенный механизм будет автоматически считывать информацию об авторизации через cookie, поэтому добавлять дополнительные параметры для идентификации пользователя не требуется Для авторизации через API необходимо отправить такой же запрос на url https://bel.sport/api/1.0/me/auth  В случае успешного выполнения авторизации в теле ответа в формате json будет содержаться токен аутентификации

{"success": true, "token": "my-auth-token"}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment