Skip to content
/ api Public

Бэкенд Доки: бэкенд, сбор и аналитика данных

License

Notifications You must be signed in to change notification settings

doka-guide/api

Folders and files

NameName
Last commit message
Last commit date
Feb 27, 2023
Feb 22, 2022
May 14, 2023
Nov 1, 2022
Nov 12, 2021
Nov 19, 2021
Nov 17, 2022
Nov 3, 2021
Dec 27, 2021
Nov 17, 2022
Feb 22, 2023
Feb 22, 2023
Nov 15, 2021
Feb 27, 2023
Feb 23, 2022

Repository files navigation

Бэкенд Доки

Product Deploy

Дока — это добрая энциклопедия для веб-разработчиков. Наша цель — сделать документацию по веб-разработке практичной, понятной и не унылой.

Этот репозиторий содержит микросервис (API) для работы с формами на сайте Доки. Данные сохраняются в PostgreSQL.

Как устроен проект

Проект собирается с помощью GitHub Actions или локально. Для сборки и запуска микросервиса используется команда (необходимо предварительно установить компилятор Go на компьютер и настроить окружение):

go run main.go

Предусмотрена сборка и запуск внутри контейнера на основе Docker Compose:

docker-compose up

Артефакт сборки попадает на сервер. Для настройки работы сервера используются данные из файла .env, которые записаны в формате ключ-значение. Для работы микросервиса необходимо заполнить все поля. Список полей:

# Режим работы приложения (прод (PRODUCTION) или отладка (DEBUG))
MODE=

# Настройки приложения
APP_HOST=
APP_PORT=
APP_NAME=

# Настройка соединения с почтовым сервером
MAIL_TYPE=
MAIL_HOST=
MAIL_USER=
MAIL_PASS=

# Ограничения API
GET_LIMIT=1000

# Настройки загрузки файлов пользователей через форму
UPLOAD_FOLDER=
UPLOAD_MAX_SIZE=

# Пользователь по умолчанию
USER_NAME=
USER_MAIL=
USER_PASS=

# Доступ к PostgreSQL
API_SECRET=
DB_HOST=
DB_DRIVER=
DB_USER=
DB_PASSWORD=
DB_NAME=
DB_PORT=
DB_DATA=

Формат запросов и ответов

Для того, чтобы отправить форму или запросить данные из БД необходимо войти с помощью учётных данных пользователя. Только авторизованные пользователи могут работать с формами. При это под пользователем понимается сервисный пользователь. Механизм уникальных пользователей позволяет разделять формы на группы. Для отправки формы на сайт или получения данных необходимо выполнить два шага (вместо localhost:8080 необходимо использовать адрес и порт, на которых будет работать микросервис):

  1. Авторизация
$ curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"email":"<email>", "password":"<пароль>"}' \
  localhost:8080/login

Ответ содержит ключ авторизации, который используется как токен для доступа к микросервису.

  1. Работа с API

Получить список всех форм из базы данных

$ curl -X GET \
  -H "Content-Type: : application/json" \
  -H "Authorization: <ключ авторизации>" \
  -H "Content-Type: application/json" \
  localhost:8080/form

Ответ содержит данные форм в формате JSON.

Отправка данных формы:

$ curl -X POST \
  -H "Accept: application/json" \
  -H "Authorization: <ключ авторизации>" \
  -H "Content-Type: application/json" \
  -d '{<Данные формы>}' \
  localhost:8080/form

Перед отправкой данные необходимо преобразовать в формат JSON, сериализовать и подставить вместо <Данные формы>.

About

Бэкенд Доки: бэкенд, сбор и аналитика данных

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages