Skip to content

patrikeyeva/Golang-service-with-PostgreSQL

Repository files navigation

Задание

  1. Написать CRUD операции для работы с бд должны быть реализованы методы
    • GetByID
    • Update
    • Create
    • Delete
  2. Написать миграции для создания таблиц используя goose
  3. Разработать 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

В случае ошибки в тело ответа пишем текст ошибки

  1. Запустить сервер на порту 9000
  • Внедрить доп сущность, которая будет связана с базовой таблицей. Минимум 1 доп поле кроме главного и внешнего ключей. Сущность должна отдаваться в ручках из пункта 2, будучи логически связанной с основной сущностью. Пример: главная сущность - пост, доп сущность-коммент. Если в Get отдается пост и все его комментарии это зачет. Если при удалении поста каскадно удаляются все комментарии тоже зачет. Покрывать все ручки не обязательно

  • В ридми приложить curl запросы, на каждую ручку. Запросы должны быть валидными и возвращать 200

Ограничения: Нельзя использовать orm или sql билдеры Для реализации http сервера можно использовать как net/http так и gin/fasthttp и прочее

About

CRUD operations for working with PostgreSQL using http server

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published