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

"""Сервер-пустышка, для генерации ответов.
Можно проверить, что он возвращает, сделав запрос:
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()