Skip to content

Aidajy111/Linksearch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Link Search - это небольшой веб-сервис, который принимает от пользователя списки интернет-ссылок, проверяет их доступность и сохраняет результаты. Каждому набору ссылок присваивается уникальный id(links_num)

Также сервис умеет формировать PDF-отчёт по нескольким ранее отправленным наборам ссылок.

Проект выполнен без использования внешней инфраструктуры: без Docker, без БД, без внешних сервисов — только файловая система.

Структура проекта

cmd/server/main.go       — точка входа
internal/handlers/       — HTTP-хендлеры
    mainHandler.go       — корневой эндпоинт
    links.go             — обработка /links
    report.go            — генерация PDF
data/batches/            — хранилище наборов ссылок (.json)
.gitignore               — исключение данных

Все рабочие файлы (JSON наборов и временные PDF) скрыты из репозитория через .gitignore

Запуск

go run cmd/server/main.go

Сервис доступен по адресу: http://localhost:8888

API

POST /links

Отправить список ссылок и получить статус доступности каждого URL.

{
  "links": [
    "google.com",
    "yandex.ru",
  ]
}

Результаты сохраняются в data/batches/link_{links_num}.json

GET /report

Генерация PDF-отчёта по нескольким наборам ссылок.

{
  "links_lists": [1, 2]
}

Сервер отправляет PDF-файл, содержащий:

  • номер набора id(links_num)
  • URL
  • статус доступности PDF файл формируется на лету, временно сохраняется в системную директорию (os.TempDir()) и удаляется через 5 минут.

Формат хранения данных

Каждый набор ссылок сохраняется как отдельный JSON-файл:

data/batches/link_1.json
data/batches/link_2.json

Пример файла:

{
  "status": "done",
  "items": {
    "links": {
      "google.com": "available",
      "yandex.ru": "available",
      "badurl.zzz": "not available"
    },
    "links_num": 1
  },
  "created_at": "2025-01-30T12:00:00Z",
  "updated_at": "2025-01-30T12:00:02Z"
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages