Open VadimSmD opened 1 month ago
Поля: предлагаю добавить имя, фамилию, дату создания
Получение данных – получения одного пользователя? Всех не вижу смысла
Поля: предлагаю добавить имя, фамилию, дату создания
Получение данных – получения одного пользователя? Всех не вижу смысла
Да, сейчас подредактирую. Касательно получения данных - да это для 1 пользователя
и еще, совсем забыл – авторизация пользователя на портале
Как и планировали, начнем работу с пользователей.
Пойдем реализовывать пользователей снизу вверх по абстракции, то есть с функций для работы с БД
[x] Описать на Go структуру пользователя в internal/entity/user
[x] Создать internal/repo/user.go, в нем объявить структуру:
type UserRepo struct {
pg *pgxpool.Pool
}
[x] Реализовать для нее конструктор func NewUserRepo( pg *pgxpool.Pool) UserRepo
[x] Реализовать с помощью pgx v5 и goqu создание пользователя:
func (r Repo) Insert(ctx context.Context, user entity.User) (entity.User, error)
[x] Скинуть мне на код-ревью
Продолжаем работу над репозиторием пользователей. На основе реализованного Insert
добить оставшиеся методы.
Методы для реализации:
PUT
и PATCH
и реализуй либо редактирование всех полей, либо части;По завершению этапа
Продолжаем работу с пользователем:
Над ним располагается транспортный слой, в нашем случае это HTTP. Для его реализации:
[ ] Опиши документацию к сервису в формате OpenAPI;
[ ] Сгенерируй документ с помощью Readocly. Необязательно скачивать npm и прочие непотребства (ведь ты белый человек, backend-разработчик) можно воспользоваться docker-образом
Команды будут выглядеть примерно так:
Генерация кода
docker run --rm -v ${PWD}/docs:/spec redocly/cli build-docs -o docs/openapi.html openapi.yaml
Линтер для документа
docker run --rm -v ${PWD}/docs:/spec redocly/cli lint openapi.yaml
Подробнее тут
[ ] После того, как документ составлен, время генерировать код для транспортного уровня. Делаем это с ogen;
[ ] Как только код реализован, самое время реализовать первый Handler – пользовательский;
[ ] Собрать все вместе и запустить http-сервер;
[ ] Описать docker-compose с приложением и PostgreSQL и запустить;
[ ] Установить (если еще нет) Postman, импортировать туда коллекцию с запросами из сгенерированного html документа либо из OpenAPI yaml-файла.
[ ] Отправить запросы на свой http-сервер
По завершению:
Пользователи. Поля: Имя Фамилия Дата регистрации Идентификатор Ник Пароль Статус
Методы: Добавление (регистрация) Удаление Изменение полей Получение данных Авторизация на портале