Разработка на Java — удалённая работа в Санкт-Петербурге
Дата: 2024-05-22
Детали
Регион
Санкт-Петербург
Занятость
дистанционно
Стоимость
от 1000.00 руб.
Дата публикации
2024-05-22
Описание
Выполнить задание на Java по разработке rest-api бэкэнда. Для выполнения задания пришлю файл с репозиторием, после написания кода он должен проходить по тестам на gradle. Далее будет текст задания. Веб-приложение “Анекдоты“Вам необходимо разработать rest-api бэкенда для приложения Анекдоты. Вам необходимо релизовать следующее api: 1. get /api/jokesКод ответа - 200. Возвращает все анекдоты (в теле ответа), которые были ранее сохранены на сервере в формате: { “jokes“: [ // далее список анекдотов: { “id“: 1, “title“: “Joke title“, “content“: “Joke content“, “created_at“: “28.03.2023“ }, ... ] } 2. get /api/jokes/{id}где вместо {id} - подставляет id интересуемого нас анекдота. Код ответа - 200. Возвращает анекдот с переданным id в теле ответа в следующем формате: { “id“: 1, “title“: “Joke title“, “content“: “Joke content“, “created_at“: “28.03.2023“ } Если анекдот с переданным id не найден - верните 404 c сообщением “Joke not found“ Комментарий: Как URI для сервлета укажите api/jokes/* , в самом сервлете посмотрите на метод request.getPathInfo() 3. post /api/jokesСохраняет новый анекдот. В теле запроса передает следующий json файл: { “title“: “Joke title“, “content“: “Joke content“ } Код ответа - 201. В ответ возвращает строку: “Joke created with id 1405“, что говорит нам о том, что была создана шутка и ей был присвоен id=1405 4. delete /api/jokes/{id}Удаляет анекдот с переданным id. Код ответа - 200 Если анекдот с переданным id не найден - верните 404 c сообщением “Joke not found“ Комментарий об архитектуре приложения 1.Создайте класс ApplicationServer с одним методом start(portNumber). Он принимает на вход порт, на котором запускается наше приложение. 2.В этой домашке не нужно подключаться в бд. Однако это не отменяет необходимость использования трехслойной архитектуры приложения в этой домашке. Создайте классы для каждого из слоев, распределите их по нужным пакетам. Здесь нам придется вручную сделать внедрение зависимостей. Создайте объекты классов сервисов и репозиториев в методе start из первого пункта. Положите эти объекты внутрь сервлетов. Для этого создайте объекты классов сервлетов, положите в них класс сервиса. Далее используйте класс ServletHolder для того, чтобы положить сервлеты внутрь ServletContextHandler. Это должно выглядеть следующим образом:// созданы переменные server и servletContextHandler, см пример из лекции var repository = new Repository(); var serice = new Service(repository); var servlet = new Servlet(serice); handler.addServlet(new ServletHolder(servlet), “url“); // далее идет запуск сервера. Пожелания и особенности: Выполнить задание на Java по разработке rest-api бэкэнда. Для выполнения задания пришлю файл с репозиторием, после написания кода он должен проходить по тестам на gradle. Далее будет текст задания. Веб-приложение “Анекдоты“Вам необходимо разработать rest-api бэкенда для приложения Анекдоты. Вам необходимо релизовать следующее api: 1. get /api/jokesКод ответа - 200. Возвращает все анекдоты (в теле ответа), которые были ранее сохранены на сервере в формате: { “jokes“: [ // далее список анекдотов: { “id“: 1, “title“: “Joke title“, “content“: “Joke content“, “created_at“: “28.03.2023“ }, ... ] } 2. get /api/jokes/{id}где вместо {id} - подставляет id интересуемого нас анекдота. Код ответа - 200. Возвращает анекдот с переданным id в теле ответа в следующем формате: { “id“: 1, “title“: “Joke title“, “content“: “Joke content“, “created_at“: “28.03.2023“ } Если анекдот с переданным id не найден - верните 404 c сообщением “Joke not found“ Комментарий: Как URI для сервлета укажите api/jokes/* , в самом сервлете посмотрите на метод request.getPathInfo() 3. post /api/jokesСохраняет новый анекдот. В теле запроса передает следующий json файл: { “title“: “Joke title“, “content“: “Joke content“ } Код ответа - 201. В ответ возвращает строку: “Joke created with id 1405“, что говорит нам о том, что была создана шутка и ей был присвоен id=1405 4. delete /api/jokes/{id}Удаляет анекдот с переданным id. Код ответа - 200 Если анекдот с переданным id не найден - верните 404 c сообщением “Joke not found“ Комментарий об архитектуре приложения 1.Создайте класс ApplicationServer с одним методом start(portNumber). Он принимает на вход порт, на котором запускается наше приложение. 2.В этой домашке не нужно подключаться в бд. Однако это не отменяет необходимость использования трехслойной архитектуры приложения в этой домашке. Создайте классы для каждого из слоев, распределите их по нужным пакетам. Здесь нам придется вручную сделать внедрение зависимостей. Создайте объекты классов сервисов и репозиториев в методе start из первого пункта. Положите эти объекты внутрь сервлетов. Для этого создайте объекты классов сервлетов, положите в них класс сервиса. Далее используйте класс ServletHolder для того, чтобы положить сервлеты внутрь ServletContextHandler. Это должно выглядеть следующим образом:// созданы переменные server и servletContextHandler, см пример из лекции var repository = new Repository(); var serice = new Service(repository); var servlet = new Servlet(serice); handler.addServlet(new ServletHolder(servlet), “url“); // далее идет запуск сервера.
Похожие заказы
Разработка на Java
дистанционно
договорная
Реализовать информационную систему, используя Java EE, Managed Beans, Hibernate и JSF. В перспективе еще три подобных работы до нового года.
Санкт-Петербург
Фрилансеры
2024-09-26
Разработка на Java
дистанционно
договорная
Помощь в изучении Java в школе. написание к февралю проекта.
Санкт-Петербург
Фрилансеры
2024-09-25
Разработка на Java
дистанционно
договорная
Нужен опытный человек, который сможет объяснить и показать как использовать testcontainers. Возможно менторство. Пожелания и особенности: Нужен опытный человек, который сможет объяснить и показать как использовать testcontainers. Возможно менторство.
Санкт-Петербург
Фрилансеры
2024-09-21
Разработка на Java
дистанционно
договорная
Разработать проект в intellij idea Ultimate: Технологический стек: СУБД Postgresql, Hibernate, Spring Core+Spring MVC. Сервер ApacheTomcat. Простейший фронтенд на Thymeleaf JSP. Задача: 1. Реализовать базу данных из трех таблиц (Документ, Версия документа, Регистрационно-контрольная карточка). Каждый хранимый в базе Документ имеет несколько Версий документов и одну Карточку, описывающую основные свойства документа. -Таблица «Документ» 1. Ключ документа <целочисленный> documentId 2. Название документа <строковый> documentName 3. Автор документа (логин) <строковый> author -Таблица «Версия документа» 1. Ключ версии документа <целочисленный> documentVersionId 2. Идентификатор документа <целочисленный> documentId 3. Пользователь создавший версию(логин) <строковый> versionAuthor 4. Содержание документа content -Таблица «Сведения о документе»(регистрационная карточка) 1. Ключ регистрационной карточки <челочисленный> regCardId 2. Ключ документа <целочисленный> documentId 3. Входящий номер документа <строковый> documentIntroNumber 4. Исходящий номер документа <строковый> documentExternNumber 5. Дата поступления <дата время> dateIntro 6. Дата снятия с учета <дата время> dateExtern Приложение должно обеспечивать следующие операции: 2.1 «Загрузка нового документа». При загрузке открывается форма: - пользователю предлагается выбрать файл для загрузки (кнопка) - заполнить следующие поля 1. Название документа 2. Входящий номер документа 3. Дата поступления (заполняется автоматически readonly) - устанавливается в текущую дату загрузки документа. При загрузке нового документа автоматически создается его версия с номером «1». 2.2 «Загрузка новой версии документа». Пользователь выбирает документ и нажимает «Загрузить новую версию». Пользователю предлагается выбрать файл для загрузки (кнопка). После загрузки создается новая запись в таблице версий с номером версии «+1» от имеющейся версии документа. 2.3 «Просмотр документа» - возможность скачать файл на форме содержащей сведения: . Название документа - Входящий номер документа -Дата поступления 2.4 «Снять документ с учета» Документ остается в базе данных, однако перед этим пользователю необходимо заполнить поле: «Исходящий номер» При этом поле Дата снятия с учета заполняется автоматически. Снятые с учета документы помечаются в таблице красным цветом, загруженные – зеленым.
Санкт-Петербург
Фрилансеры
2024-09-19
Разработка на Java
дистанционно
договорная
Разработать проект в intellij idea Ultimate: Технологический стек: СУБД Postgresql, Hibernate, Spring Core+Spring MVC. Сервер ApacheTomcat. Простейший фронтенд на Thymeleaf JSP. Задача: 1. Реализовать базу данных из трех таблиц (Документ, Версия документа, Регистрационно-контрольная карточка). Каждый хранимый в базе Документ имеет несколько Версий документов и одну Карточку, описывающую основные свойства документа. -Таблица «Документ» 1. Ключ документа <целочисленный> documentId 2. Название документа <строковый> documentName 3. Автор документа (логин) <строковый> author -Таблица «Версия документа» 1. Ключ версии документа <целочисленный> documentVersionId 2. Идентификатор документа <целочисленный> documentId 3. Пользователь создавший версию(логин) <строковый> versionAuthor 4. Содержание документа content -Таблица «Сведения о документе»(регистрационная карточка) 1. Ключ регистрационной карточки <челочисленный> regCardId 2. Ключ документа <целочисленный> documentId 3. Входящий номер документа <строковый> documentIntroNumber 4. Исходящий номер документа <строковый> documentExternNumber 5. Дата поступления <дата время> dateIntro 6. Дата снятия с учета <дата время> dateExtern Приложение должно обеспечивать следующие операции: 2.1 «Загрузка нового документа». При загрузке открывается форма: - пользователю предлагается выбрать файл для загрузки (кнопка) - заполнить следующие поля 1. Название документа 2. Входящий номер документа 3. Дата поступления (заполняется автоматически readonly) - устанавливается в текущую дату загрузки документа. При загрузке нового документа автоматически создается его версия с номером «1». 2.2 «Загрузка новой версии документа». Пользователь выбирает документ и нажимает «Загрузить новую версию». Пользователю предлагается выбрать файл для загрузки (кнопка). После загрузки создается новая запись в таблице версий с номером версии «+1» от имеющейся версии документа. 2.3 «Просмотр документа» - возможность скачать файл на форме содержащей сведения: . Название документа - Входящий номер документа -Дата поступления 2.4 «Снять документ с учета» Документ остается в базе данных, однако перед этим пользователю необходимо заполнить поле: «Исходящий номер» При этом поле Дата снятия с учета заполняется автоматически. Снятые с учета документы помечаются в таблице красным цветом, загруженные – зеленым.
Санкт-Петербург
Фрилансеры
2024-09-19
Разработка на Java
дистанционно
договорная
Необходима помощь с решением задачи по backend java: Реализовать микросервис, который будет выполнять роль хранилища различных файлов и их атрибутов. Микросервис должен предоставлять HTTP API и принимать/отдавать запросы/ответы в формате JSON. Разработка UI-интерфейса не требуется. Для тестирования можно использовать Postman или аналог. Должны быть реализованы следующие API-методы: Создание файла. На вход методу отправляется JSON, включающий в себя файл (в формате base64) и его атрибуты (название - title, дата и время отправки - creation_date, краткое описание документа - description), на выходе метод возвращает id созданного файла. Получение файла. На вход методу отправляется id файла, на выходе метод возвращает JSON, включающий в себя файл (в формате base64) и его атрибуты (название - title, дата и время отправки - creation_date, краткое описание документа - description) Технологический стек: Микросервис должен быть реализован на Java+Spring Boot, но допускается использование и дополнительных библиотек. Для хранения данных (и самого файла, и его атрибутов) использовать СУБД PostgreSQL. Дополнительные требования (их реализовывать необязательно, но если сможешь реализовать какие-то пункты - будет очень круто, мы это отметим как преимущество): Добавить метод получения списка всех файлов (и их атрибутов). Необходимо реализовать пагинацию и сортировку по времени создания файлов. Покрыть проект тестами на JUnit. Обернуть микросервис в docker-контейнер (можно в один вместе с БД).
Санкт-Петербург
Фрилансеры
2024-09-10
Разработка на Java
дистанционно
договорная
Нужен человек, который поможет решить задачу на Java в проекте.
Санкт-Петербург
Фрилансеры
2024-07-17