Skip to content

Conversation

@Vasyalvv
Copy link
Collaborator

@Vasyalvv Vasyalvv commented Oct 1, 2022

Доработка замечаний fix #71.

  • Исправлены недочеты в коде;
  • Исправлены проблемы возникшие при предыдущем слиянии;
  • Метод создания короткой ссылки возвращает Id созданной ссылки;
  • Создан отдельный метод получения короткой ссылки по Id;
  • Методы Web API создания короткой ссылки и получения короткой ссылки по Id возвращают результат CreatedAtAction и AcceptedAtAction соответственно;
  • Маршруты контроллера Web-приложения приведены в порядок, в соответствии с заданием. Теперь доступ к действиям контроллера происходит по стандартному маршруту "https://localhost/url/action/id?", переход по короткой ссылке "https://localhost/url/17D9...", создание короткой ссылки по POST запросу "https://localhost/url/" с передачей исходной ссылки в теле запроса.

…лки.

Отдельный метод для получения хеша короткой ссылки по идентификатору.
…онтроллера происходит по стандартному маршруту "https://localhost/url/action/id?", переход по короткой ссылке "https://localhost/url/17D9...", создание короткой ссылки по POST запросу "https://localhost/url/" с передачей ссылки в теле запроса
@Vasyalvv Vasyalvv added this to the Этап 2 milestone Oct 1, 2022
@Vasyalvv Vasyalvv self-assigned this Oct 1, 2022
@Infarh
Copy link
Contributor

Infarh commented Oct 26, 2022

  1. Сократить сокрощённую ссылку до 5 символов хеша (количество символов должно указываться в файле конфигурации)
  2. Сокращённая ссылка должна одинаково работать для любой длины строки. Поиск в БД должен осуществляться по совпадению начала строки хеша

@Infarh Infarh marked this pull request as draft November 3, 2022 04:04
…лки в БД сохраняется MD5-хеш из 32 символов - это является псевдонимом ссылки. Для получения оригинальной ссылки в запросе к WebAPI можно передавать как псевдоним целиком (api/v1/url?Alias=D0D16672757FADB7FA0056C62114C533), так и начальную его часть (api/v1/url?Alias=D0D16), поиск в БД происходит по совпадению начала строки.

При генерировании псевдонима, по умолчанию возвращается полный псевдоним 32 символа. Если такая длина избыточна, то ее можно ограничить указав параметр "ShortUrlMaxLength" в файле appsettings.json. Либо это ограничение можно указать в запросе к WebAPI (api/v1/url/alias/1084?Length=7).
@Infarh Infarh marked this pull request as ready for review November 9, 2022 16:33
Copy link
Contributor

@Infarh Infarh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Добавить проверку и коррекцию ввода пользователя ссылки - добавление в начало схемы адреса URL в контроллерах

if (!Regex.IsMatch(url, @"^https?://"))
    url = "http://" + url;

В сервисах добавить валидацию адреса и генерацию исключения

if (!Regex.IsMatch(Url, @"^https?://"))
    throw new FormatException("Строка адреса не имеет схемы");

@Infarh
Copy link
Contributor

Infarh commented Nov 9, 2022

Также поправить текст "обновить" на "сбросить" в окне статистики

Добавлена проверка и дополнение Url-адреса
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Доработать сервис сокращения ссылок

2 participants