Skip to content

Latest commit

 

History

History
80 lines (61 loc) · 2.91 KB

README.md

File metadata and controls

80 lines (61 loc) · 2.91 KB

✔️ urlShortener

urlShortener - сервис, который предоставляет API по созданию сокращённых ссылок следующего формата:

  • Сокращенная ссылка состоит из 10 символов
  • Cимволы состоят из латинского алфавита в нижнем и верхнем регистре, цифр и символа '_'

Сервис принимает следующие запросы по http:

  1. Метод POST, который сохраняет оригинальный URL в базе и возврает сокращённый

  • URL: /encode/

  • URL Params: None

  • Data Params Required:

    {"longUrl":"ссылка"}
  • Success Response:

    • Code: 200
      Content: {"укороченная ссылка"}

    OR

    • Code: 200
      Content: {"longURL is already in base укороченная ссылка"}
  • Error Response:

    • Code: 400 BAD REQUEST
      Content: {"Bad JSON"}

    OR

    • Code: 400 BAD REQUEST
      Content: {"Missing field 'longUrl' from JSON object"}

    OR

    • Code: 400 BAD REQUEST
      Content: {"Extraneous data after JSON object"}

    OR

    • Code: 400 BAD REQUEST
      Content: {"Invalid URI for request"}
  1. Метод Get, который принимает сокращённый URL и выполняет редирект на оригинальный URL

  • URL: /укороченная_ссылка

  • URL Params: None

  • Data Params Required: None

  • Success Response:

    • Code: 303 SEE OTHER
      Content: {"<a href="исходная ссылка">See Other</a>."}
  • Error Response:

    • Code: 404 NOT FOUND
      Content: {"short URL doesn't exist in base"}

Хранилище

      В качестве хранилища возможно использование in-memory решения и базы данных - postgresql. Какое хранилище использовать указывается параметром при запуске сервиса. image

Usage

По умолчанию поднимается контейнер в котором работает сервис

make

Поднимается контейнер с сервисом и контейнер с базой данных postgresql

make psql

Выполняются тесты для inmemory

make test_inmem

Выполняются тесты для psql

make test_psql

Выполняются все тесты

make testall

Other

Author:
🧛Deeds Baron