diff --git a/README.md b/README.md index d4aa24c..2293496 100644 --- a/README.md +++ b/README.md @@ -77,6 +77,9 @@ Поступающие запросы и возвращаемые ответы должны соответствовать структуре и требованиям, описанным в [Open API](./tests/openapi.yml) спецификации. Обращайте внимание на ожидаемые status code, ограничения по длине и разрешенные символы в строках. +Если структура запроса не соответствует требованиям и описанному формату, по умолчанию возвращается код ответа 400. +Если указан более специфичный код ответа, используйте его. + ### 01/ping Достаточно реализовать возврат успешного ответа (с кодом `200`) на запрос `GET /api/ping`. Содержимое тела ответа при этом не валидируется, можно возвращать `"ok"`. @@ -230,7 +233,7 @@ INSERT INTO countries (name, alpha2, alpha3, region) VALUES - Запуск тестов. Для каждой группы тестов - запускаются Docker контейнеры с вашим приложением и PostgreSQL; - - тестирующая система применяет нужные миграции к запущенному PostgreSQL; + - тестирующая система применяет нужные миграции к запущенному PostgreSQL (создается и заполняется только таблица `countries`, остальное должно делать ваше приложение); - тестирующая система дожидается успешного (`200`) ответа на `GET /api/ping`, на это дается не более 10 секунд; @@ -269,7 +272,16 @@ INSERT INTO countries (name, alpha2, alpha3, region) VALUES Не забывайте делать `git pull --rebase`, чтобы загрузить актуальные требования в локальную версию репозитория. -### 28.02.2023 +### 01.03.2024 + +Коллеги, с первым днем весны! + +Напоминаем вам, что корректные логин, номер телефона, e-mail и другая подобная информация должны состоять минимум из одного символа! +А длина уникального идентификатора публикации не превышает разумных значений... + +Также добавим, что в эндпоинте `/countries` если хотя бы один переданный регион является некорректным, весь запрос считается некорректным. + +### 28.02.2024 Коллеги передали, что связь "друзья" является односторонней. @@ -279,7 +291,7 @@ INSERT INTO countries (name, alpha2, alpha3, region) VALUES Группа `08/friends` зависит от группы `06/profiles`. -### 27.02.2023 +### 27.02.2024 Коллеги, привет! Ничего критичного... Уговорили нашего Devops-инженера расширить список переменных с информацией для подключения к PostgreSQL. Смотрите секцию с описанием ENV переменных. Надеемся, теперь станет проще! diff --git a/tests/openapi.yml b/tests/openapi.yml index 0fcad52..39fccb8 100644 --- a/tests/openapi.yml +++ b/tests/openapi.yml @@ -33,6 +33,7 @@ paths: Получение списка стран с возможной фильтрацией. Используется на странице регистрации для предоставления возможности выбора страны, к которой относится пользователь. + Если хотя бы один переданный регион является некорректным, весь запрос считается некорректным. Если никакие из фильтров не переданы, необходимо вернуть все страны. operationId: listCountries @@ -406,6 +407,7 @@ paths: Позволяет добавить другого пользователя к себе в друзья. Если указанный пользователь уже добавлен в друзья, верните успешный ответ. + Если пользователь добавляет в друзья самого себя, верните успешный ответ (добавлять в друзья при этом не нужно). Сервер должен идентифицировать пользователя по переданному токену. Значение токена будет подставляться в заголовок `Authorization` в формате `Bearer {token}`. security: @@ -499,7 +501,7 @@ paths: get: summary: Получение списка друзей description: | - Используется для получения списка своих друзей. + Используется для получения списка своих друзей (пользователей, кого инициатор запроса добавил в друзья). Для плавной работы приложения используется пагинация. @@ -644,7 +646,9 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/post" + type: array + items: + $ref: "#/components/schemas/post" "401": description: Переданный токен не существует либо некорректен. content: @@ -684,7 +688,9 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/post" + type: array + items: + $ref: "#/components/schemas/post" "401": description: Переданный токен не существует либо некорректен. content: @@ -823,6 +829,7 @@ components: type: string description: E-mail пользователя maxLength: 50 + minLength: 1 example: yellowstone1980@you.ru userPassword: type: string @@ -853,6 +860,7 @@ components: description: Ссылка на фото для аватара пользователя example: https://http.cat/images/100.jpg maxLength: 200 + minLength: 1 userProfile: type: object description: Информация о профиле пользователя @@ -878,6 +886,7 @@ components: type: string description: Уникальный идентификатор публикации, присвоенный сервером. example: 550e8400-e29b-41d4-a716-446655440000 + maxLength: 100 postContent: type: string description: Текст публикации. @@ -968,6 +977,7 @@ components: type: integer format: int32 default: 0 + minimum: 0 securitySchemes: bearerAuth: type: http