- Написать CRUD операции для работы с бд
должны быть реализованы методы
- GetByID
- Update
- Create
- Delete
- Написать миграции для создания таблиц используя goose
- Разработать HTTP сервер. Сервер должен уметь работать с бд и релизовывать CRUD операции.
-
Метод GetByID.
- В Query-параметрах принимать идентификатор ?id= и возвращать данные из бд.
- если передан идентификатор, который отсутствует в бд, возвращать HTTP-статус 404
- если Query-параметрах отсутсвует ?id=, возвращать HTTP-статус 400
- если произошла внутренняя ошибка сервера, возвращать HTTP-статус 500
- если запрос успешно выполнен, возвращать HTTP-статус 200 и данные в теле ответа
-
Метод Create
- В теле запроса принимать идентификатор и данные: и добавлять в бд
- если такой идентификатор уже существует, возвращать HTTP-статус 409
- если произошла внутренняя ошибка сервера, возвращать HTTP-статус 500
- если запрос успешно выполнен, возвращать HTTP-статус 200
-
Метод Delete
- В Query-параметрах принимать идентификатор ?id= и удалять из бд
- если такого идентификатора не существует, возвращать HTTP-статус 404
- если произошла внутренняя ошибка сервера, возвращать HTTP-статус 500
- если запрос успешно выполнен, возвращать HTTP-статус 200
-
Метод Update
- В теле запроса принимать идентификатор и данные и обновлять бд по ключу
- если такого идентификатора не существует, возвращать HTTP-статус 404
- если произошла внутренняя ошибка сервера, возвращать HTTP-статус 500
- если запрос успешно выполнен, возвращать HTTP-статус 200
-
В случае ошибки в тело ответа пишем текст ошибки
- Запустить сервер на порту 9000
-
Внедрить доп сущность, которая будет связана с базовой таблицей. Минимум 1 доп поле кроме главного и внешнего ключей. Сущность должна отдаваться в ручках из пункта 2, будучи логически связанной с основной сущностью. Пример: главная сущность - пост, доп сущность-коммент. Если в Get отдается пост и все его комментарии это зачет. Если при удалении поста каскадно удаляются все комментарии тоже зачет. Покрывать все ручки не обязательно
-
В ридми приложить curl запросы, на каждую ручку. Запросы должны быть валидными и возвращать 200
Ограничения: Нельзя использовать orm или sql билдеры Для реализации http сервера можно использовать как net/http так и gin/fasthttp и прочее