shortlinks

command module
v0.0.0-...-ba197b7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 7, 2023 License: Apache-2.0 Imports: 8 Imported by: 0

README

HTTP-сервис для создания сокращенных ссылок

Task

Необходимо реализовать HTTP-сервис для создания сокращенных ссылок Сервис должен иметь следующее API:

  • POST /n - создание новой сокращенной ссылки. Должен возвращать полную сокращенную ссылку, вместе со схемой и доменом(эти параметры должны определяться динамически, по запросу) При создании ссылки необходимо проверять, создан ли уже short_url с данным назначением и в случае нахождения использовать его
  • GET /<short_url_path> - должен отвечать перманентным редиректом с сохраненной ссылкой, при невалидности short_url_path должен отвечать ошибкой 404 Not Found Перед запросом в СУБД необходимо удостовериться, что short_url_path выпущен сервисом. Проверка не обязана быть криптографически стойкой, но ее должно быть достаточно для избежания лишних запросов к СУБД при брут форсе short_url_path

В качестве СУБД должен использоваться Postgres, сервис должен уметь сам развертывать необходимые ему сущности в СУБД short_url_path должен быть регистронезависимым, состоять только из латинских букв и цифр нижнего регистра и быть настолько коротким, насколько это вообще возможно

Run

В файле .env выберите параметры подключения к PostgreSQL, порт и наличие схемы в URL. Запустите main.go.

Test

В браузере откройте страницы: http://localhost:8080/ http://localhost:8080/<short_url_path>

В Postman выполните запросы вида:

POST /n
body:
  link: String
returns:
  hash: String

и

GET /hash
params:
  hash: String
returns:
  link: String

Пример

http://localhost:8080/api/link?hash=uTaGL

Ответ

{"link": "https://habr.com/"}

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
api

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL