- Выставить rest методы
- Получение данных с фильтрацией по всем полям и пагинацией
- Удаления по идентификатору
- Изменение одного или нескольких полей по идентификатору
- Добавления новых автомобилей в формате
{
"regNums": ["X123XX150"] // массив гос. номеров
}
- При добавлении сделать запрос во внешнее АПИ, описанного сваггером (это описание некоторого внешнего АПИ, которого нет, но к которому надо обращаться. Реализованное, согласно описанию, АПИ будет использоваться при проверке)
openapi: 3.0.3
info:
title: Car info
version: 0.0.1
paths:
/info:
get:
parameters:
- name: regNum
in: query
required: true
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/Car'
'400':
description: Bad request
'500':
description: Internal server error
components:
schemas:
Car:
required:
- regNum
- mark
- model
- owner
type: object
properties:
regNum:
type: string
example: X123XX150
mark:
type: string
example: Lada
model:
type: string
example: Vesta
year:
type: integer
example: 2002
owner:
$ref: '#/components/schemas/People'
People:
required:
- name
- surname
type: object
properties:
name:
type: string
surname:
type: string
patronymic:
type: string
- Обогащенную информацию положить в БД postgres (структура БД должна быть создана путем миграций при старте сервиса)
- Покрыть код debug- и info-логами
- Вынести конфигурационные данные в .env-файл
- Сгенерировать сваггер на реализованное АПИ
Необходимо ввести в терминал из корня проекта - docker-compose up --build -d
Будет развёрнуто 2 контейнера:
- db - СУБД PostgreSQL
- server - сам сервис
Сервис использует Postgresql, для успешной работы сервиса подтребуется:
- Подготовить бд к использованию
- Изменить параметры конфигурации в файле .env
- Необходимо установить зависимости, для это из корня проекта надо выполнить команду -
go mod download
- Скомпелировать выполняемый файл -
go build -o <название_выполняемого_файла> ./cmd/main.go
- Запуск -
./<название_выполняемого_файла>
Для удобной проверки была сгенирирована спецификация swagger (использовался подход code-first). Спецификация находится в директории docs. Также воспользоваться спецификацией можно по URI - /swagger/ (например: http://localhost:8080/swagger/)
Для конфигурации проекта надо изменить файл .env Также по необходимости dockerfile и dockercompose