Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 

Бэкенд для ТЗ-3

  • Бэкенд предназначен для решения тестового задания №3.
  • Для решения ТЗ вам потребуется запустить бэкенд локально и ознакомиться с его API, которое задокументировано с помощью Swagger'a. Подробности ниже.

Предварительная настройка

  1. Для начала склонируйте этот репозиторий:
git clone https://github.com/maxfarseer/backend-tz3.git
  1. В настройках проекта вам нужно указать свой client ID для авторизации через Google. Как создать свой ClientID подробно описано здесь. Созданный ClientID нужно будет указать в файле backend/config/env/common.js. Этот же ClientID вам нужно будет использовать на фронтенде.

backend/config/env/common.js

...
google: {
  clientID: "ВАШ_ID_ЗДЕСЬ" // остальные поля конфига не трогайте
}
...

Запуск через Docker

Прежде всего, нужно установить и запустить Docker локально на своей машине. После этого запуск бэкенда будет предельно простым, поэтому мы настоятельно рекомендуем воспользоваться данным способом.

  1. Скачайте и установите Docker.

  2. После запуска (подождите, пока иконка докера будет статичной), чтобы убедиться, что Docker установлен и запущен, в командой строке введите:

    docker info
    

    Примерный вывод команды:

    Containers: 41
    Running: 1
    Paused: 0
    Stopped: 40
    Images: 24
    Server Version: 18.06.1-ce
    Storage Driver: overlay2
    Backing Filesystem: extfs
    Supports d_type: true
    Native Overlay Diff: true
    Logging Driver: json-file
    Cgroup Driver: cgroupfs
    ...
    

    Это значит, что Docker установлен и работает в штатном режиме.

  3. Перейдите в директорию проекта и запустите бэкенд:

    cd backend-tz3 (или название вашей директории, куда вы скачали репозиторий)
    docker-compose up
    

    Выполнение команды может занять некоторое время - Docker выкачает необходимые образы и установит все зависимости для проекта. Когда приложение запустится, вы увидите в консоли следующее:

    Вывод docker-compose

  4. Чтобы проверить, что бэкенд работает, откройте Swagger UI и сделайте несколько запросов к API бэкенда. Для этого:

    1. В браузере перейдите на localhost (без указания порта). Должен открыться Swagger UI, из котрого можно делать запросы на бэкенд: Swagger UI
    2. В качестве пробного запроса можно выполнить запрос GET на получение списка новостей. Нужно нажать на "Try it out": Try it out А затем на "Execute": Execute В качестве ответа вы увидите список новостей. Пока что он будет пустой. Подробности по использованию Swagger даны ниже.

Запуск без Docker'а

Если вы по какой-то причине не хотите использовать Docker, вы можете запустить все компоненты приложения поотдельности.

  1. Скачайте Mongo DB Server. После установки нужно запустить базу. Как это сделать описано в документации.

    Важно, чтобы база данных была запущена в первую очередь.

  2. Запустите бэкенд:
    npm install
    npm run start
    
  3. Запустите Swagger UI. Как это сделать описано в документации.

Использование Swagger UI

Для полноценного взаимодействия с бэкендом через Swagger UI вам потребуется авторизоваться.

  1. Для начала вам нжуно авторизоваться через Google. Как это сделать подробно описано в уроке авторизация с помощью Google Sign In. В результате вы должны получить token от Google, который нужно будет передать бэкенду для авторизации.
  2. Авторизуйтесь на бэкенде. Для этого нужно отправить запрос POST на адрес /auth/google с полученным токеном в качестве параметра. В ответ вы получите токен авторизации на бэкенде, который можно использовать для создания и изменения новостей и просмотра профиля.
  3. Вверху страницы нажмите на кнопку "Authorize" и вставьте полученный токен. Теперь вы можете выполнять запросы, требующие авторизации.
  4. Для проверки авторизации попробуйте создать новость. Для этого отправьте запрос POST на адрес /feeds с необходимыми параметрами. Если все прошло хорошо, значит вы авторизованы.

Токен авторизации действителен в течение часа, после этого его нужно обновлять. Для этого повторите шаги 2-3. Авторизоваться заново в Google не нужно.

About

No description, website, or topics provided.

Resources

Releases

No releases published

Packages

No packages published

Languages