Небольшой REST API на Scala 2
10 000 руб. за проект
Необходимо создать небольшой REST API сервис на Scala 2.13 в качестве учебного проекта, можно по шаблону (уже есть код). Обязательно/по-возможности, соблюсти следующие требования:
Сокращенные URL живут вечно, проверка уникальности, увеличение длины ключа по мере исчерпания ключей. Проверка доступа до ресурса по сокращенному URL.
- Тест классы именуются Spec, где - класс к которому пишутся тесты;
- Тест классы находятся в том же пакете, что и класс к которому пишутся тесты
- Каждый тест должен быть в отдельном test suite;
- Использовать java коллекции запрещается (Используйте Scala коллекции);
- Использовать mutable коллекции запрещается;
- Использовать var запрещается;
- Использование this запрещается (используйте self если требуется);
- Использование return запрещается;
- Использование System.exit запрещается;
- Касты или проверки на типы с помощью методов из Java вроде asInstanceOf запрещаются;
- Использовать throw запрещено;
- Использование циклов запрещается (используйте for comprehension, tailRec, методы Monad, fold);
- Использование не безопасных вызовов разрешено только в тестах (например .get у Option);
- Использование взятия и освобождения примитивов синхронизации: semaphore, mutex - из разных потоков запрещено;
- Использование require для ошибок запрещается
Предполагается использовать scala 2.13, sbt. tapir, cats, tofu, doobie по-возможности. БД postgres, кэш redis. Сервис должен уметь собираться в docker образ.
На выходе должен быть работающий REST API, и swagger документация по адресу.
Сокращенные URL живут вечно, проверка уникальности, увеличение длины ключа по мере исчерпания ключей. Проверка доступа до ресурса по сокращенному URL.
- Тест классы именуются Spec, где - класс к которому пишутся тесты;
- Тест классы находятся в том же пакете, что и класс к которому пишутся тесты
- Каждый тест должен быть в отдельном test suite;
- Использовать java коллекции запрещается (Используйте Scala коллекции);
- Использовать mutable коллекции запрещается;
- Использовать var запрещается;
- Использование this запрещается (используйте self если требуется);
- Использование return запрещается;
- Использование System.exit запрещается;
- Касты или проверки на типы с помощью методов из Java вроде asInstanceOf запрещаются;
- Использовать throw запрещено;
- Использование циклов запрещается (используйте for comprehension, tailRec, методы Monad, fold);
- Использование не безопасных вызовов разрешено только в тестах (например .get у Option);
- Использование взятия и освобождения примитивов синхронизации: semaphore, mutex - из разных потоков запрещено;
- Использование require для ошибок запрещается
Предполагается использовать scala 2.13, sbt. tapir, cats, tofu, doobie по-возможности. БД postgres, кэш redis. Сервис должен уметь собираться в docker образ.
На выходе должен быть работающий REST API, и swagger документация по адресу.
Отзывы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.