Даны 2 json файла: post.json, в котором находится список постов.
{
"posts":
[
{
"id": 1,
"title": "post_1",
"date": "2019-01-01T20:56:35",
"body": "The post",
"deleted": false
}
]
}
comments.json, в котором находятся комментарии к постам, сопоставление по полю "post_id".
{
"comments":
[
{
"id": 1,
"post_id": 1,
"title": "comment_1",
"date": "2019-01-02T21:58:25",
"comment": "Comment"
}
]
}
Необходимо разработать бекенд, реализующий следующее API: GET "/" - возвращает список постов следующего формата.
{
"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.
{
"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 репозитория
- Язык реализации Python 3.7
- Допустимые сторонние библиотеки для кода приложения: aiohttp
- Для тестов можно использовать любые средства, предпочтителен pytest
- Использовать средства ведения проекта, так как будто это реальный проект