Created
October 10, 2019 12:47
-
-
Save Deniallugo/2cc392fd7f80dcf677cb529421b54c78 to your computer and use it in GitHub Desktop.
test_task_python
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Тестовое задание для Python-разработчика | |
##Задание: | |
Даны 2 json файла:post.json, в котором находится список постов. | |
```json | |
{ | |
"posts": | |
[ | |
{ | |
"id": 1, | |
"title": "post_1", | |
"date": "2019-01-01T20:56:35", | |
"body": "The post", | |
"deleted": false | |
} | |
], | |
} | |
``` | |
comments.json, в котором находятся комментарии к постам, сопоставление по полю "post_id". | |
```json | |
{ | |
"comments": [ | |
{ | |
"id": 1, | |
"post_id": 1, | |
"title": "comment_1", | |
"date": "2019-01-02T21:58:25", | |
"comment": "Comment", | |
} | |
], | |
} | |
``` | |
Необходимо разработать бекенд, реализующий следующее API: GET "/" - возвращает список постов следующего формата. | |
```json | |
{ | |
"posts": | |
[ | |
{ | |
"id": 1, | |
"title": "post_1", | |
"date": "2019-01-01T20:56:35", | |
"body": "The post", | |
"comments_count": 1 | |
}, | |
], | |
"posts_count": 1, | |
} | |
``` | |
- все записи должны быть отсортированы по дате создания (поле "date" в формате ISO 8601). | |
- возвращать необходимо не удаленные записи (поле "deleted"). | |
- так же не нужно возвращать записи, время которых еще не наступило. | |
- необходимо возвращать количество комментариев к каждому посту (поле "comments_count"). | |
GET "/post/{id}" - возвращает пост по его id. | |
```json | |
{ | |
"id": 1, | |
"title": "post_1", | |
"date": "2019-01-01T20:56:35", | |
"body": "The post", | |
"comments": | |
[ | |
{ | |
"id": 1, | |
"post_id": 1, | |
"title": "comment_1", | |
"date": "2019-01-02T21:58:25", | |
"comment": "Comment", | |
}, | |
], | |
"comments_count": 1, | |
}, | |
``` | |
- все комментарии должны быть отсортированы по дате создания (поле "date" в формате ISO 8601). | |
- необходимо вернуть количество комментариев к текущей новости (поле "comments_count"). | |
- в случае, если новости с таким id нет, необходимо вернуть код ошибки - 404. | |
- в случае, если запись удалена (поле "deleted"), необходимо вернуть код ошибки - 404. | |
- в случае, если время создания записи еще не наступило, необходимо вернуть код ошибки - 404. | |
##Решение | |
- Решение необходимо предоставить в виде git репозитория | |
- Язык реализации Python3.7 | |
- Допустимые библиотеки: aiohttp, pytest | |
- Плюсом будет наличие тестов. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment