jinv.ru

Генерация коротких URL адресов

01 March 2020

Данная статья описывает мой учебный проект на FreeCodeCamp.

Чтобы понять, для чего нужен этот микросервис прочтите статью Сокращение URL на Википедии, а также прочтите эту статью.

Задание

Нужно создать JavaScript приложение полного цикла, которое функционально похоже на это: https://thread-paper.glitch.me/.

Работа над этим проектом включает написание кода на онлайн-сервисе Glitch. Чтобы приступить к написанию кода требуется запустить стартовый код проекта по этой ссылке или клонировать этот репозиторий с GitHub!

А теперь рассмотрим пожелания пользователя (user story):

  1. Если в форму проекта ввести произвольный URL-адрес и отправить POST запрос по адресу [project_url]/api/shorturl/new, то по этому адресу отобразится ответ в формате JSON, в котором будет оригинальный URL-адрес и его сокращенный вариант, например: {"original_url":"www.google.com", "short_url": 1}
  2. Если передать недопустимый URL-адрес, который не соответствует формату http(s)://www.example.com(/more/routes), то ответ в JSON будет содержать ошибку: {"error":"invalid URL"}. Подсказка: чтобы убедиться, что отправленный url-адрес указывает на допустимый сайт, можно использовать функцию dns.lookup(host, cb) от модуля ядра dns.
  3. Когда посещается сокращенный URL-адрес, происходит перенаправление на оригинальную ссылку.

Пример Создания: POST [project_url]/api/shorturl/new - body (urlencoded) : url=https://www.google.com

Использование: [thisprojecturl]/api/shorturl/3

Вы будете перенаправлены на: https://www.freecodecamp.org/forum/

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

Решение

Вот ссылки, где можно просмотреть демонстрацию моего проекта и его исходный код