-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathapp.py
71 lines (56 loc) · 1.97 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
from flask import Flask, jsonify, abort
from typing import Tuple
app = Flask(__name__)
def data_loader() -> Tuple[dict, dict]:
"""
Функция загружает данные из json файлов и преобразует их в dict.
Функция не должна нарушать изначальную структуру данных.
"""
return {}, {}
@app.route("/")
def get_posts():
"""
На странице / вывести json в котором каждый элемент - это:
- пост из файла posts.json.
- для каждой поста указано кол-во комментариев этого поста из файла comments.json
Формат ответа:
posts: [
{
id: <int>,
title: <str>,
body: <str>,
author: <str>,
created_at: <str>,
comments_count: <int>
}
],
total_results: <int>
Порядок ключей словаря в ответе не важен
"""
posts, comments = data_loader()
output = {"body": "Social posts"}
return jsonify(output)
@app.route("/posts/<int:post_id>")
def get_post(post_id):
"""
На странице /posts/<post_id> вывести json, который должен содержать:
- пост с указанным в ссылке id
- список всех комментариев к новости
Отдавайте ошибку abort(404), если пост не существует.
Формат ответа:
id: <int>,
title: <str>,
body: <str>,
author: <str>,
created_at: <str>
comments: [
"user": <str>,
"post_id": <int>,
"comment": <str>,
"created_at": <str>
]
Порядок ключей словаря в ответе не важен
"""
posts, comments = data_loader()
output = {"body": "Post: %d" % post_id}
return jsonify(output)