You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.6 KiB
59 lines
1.6 KiB
"""Сервер-пустышка, для генерации ответов. |
|
Можно проверить, что он возвращает, сделав запрос: |
|
|
|
httpie |
|
http get 127.0.0.1:5000/api/portal/get columns:='["hostname"]' limit=9 |
|
|
|
curl (надо быть в папке проекта, request.json лежит в ней) |
|
curl --request GET \ |
|
--header "Content-Type: application/json" \ |
|
--data @request.json \ |
|
127.0.0.1:5000/api/portal/get |
|
|
|
""" |
|
|
|
from flask import Flask, jsonify, request |
|
import json |
|
import secrets |
|
from random import randint |
|
import time |
|
|
|
app = Flask(__name__) |
|
|
|
|
|
@app.route("/api/portal/get", methods=["GET"]) |
|
def index(): |
|
""" |
|
Единственная функция сервера-пирожочка. |
|
|
|
Вернет json, в формате: |
|
{"result": [ |
|
{"hostname": "content-creator-random_hex[8]"}, |
|
... |
|
], |
|
"done": true} |
|
|
|
В этой реализации, принимает аргумент `limit=N`, N -- количество |
|
генерируемых значений, а не выборка. |
|
""" |
|
# print(request) |
|
columns = request.json.get("columns") |
|
limit = int(request.json.get("limit")) |
|
|
|
hosts: List[dict] = [] |
|
|
|
for host in range(0, limit): |
|
hosts.append({"hostname": f"content-creator-{secrets.token_hex(4)}"}) |
|
|
|
time.sleep(randint(1, 6)) |
|
|
|
return jsonify({"result": hosts, "done": True}) |
|
|
|
|
|
@app.route("/api/portal/count", methods=["GET"]) |
|
def count(): |
|
time.sleep(randint(1, 2)) |
|
return jsonify({"result": randint(20, 300), "done": True}) |
|
|
|
|
|
app.run()
|
|
|