выполнять скрипт Python каждый раз, когда API получает запрос - PullRequest
0 голосов
/ 17 января 2019

Это мой простой отдых API

Я получаю переменную jira из скрипта get_jira

Это еще один скрипт на python, который отправляет запрос POST jira rest api для получения нового идентификатора jira

И работает нормально, но только один раз. Когда я запускаю свое приложение и отправляю ему запрос GET, он дает мне новый идентификатор jira, скажем, ABC-01. Проблема в том, что когда я отправляю еще один запрос GET для получения следующего идентификатора jira, он снова выдает ABC-01

Похоже, что get_jira выполняется только один раз, независимо от того, сколько запросов GET я отправлю. Единственный способ - перезапустить приложение

Есть ли способ получить новый идентификатор jira (jira) каждый раз, когда я отправляю запрос GET на мой API?

from flask_restful import Resource, Api, request
import fileinput

app = Flask(__name__)
api = Api(app)

class Get(Resource):
        def get(self):

                ### ACCEPTED PARAMETERS
                source = request.get_json(force=True)['source']
                desc = request.get_json(force=True)['desc']

                ###
                .
                .
                ###

           ---> from get_jira import jira

                return jsonify({"desc":desc},{"source": source},{"jira": jira})

api.add_resource(Get, '/api/v1.0')

if __name__ == '__main__':
        app.run(port=5000,debug=True,use_reloader=True)

1 Ответ

0 голосов
/ 17 января 2019

Импорт должен быть сделан вверху вашего файла по нескольким причинам, которые я не буду здесь раскрывать, но я думаю, что вам было бы неплохо немного изучить, как работает импорт в python.

Исходя из того, что я понимаю в вашем коде, его можно переформатировать следующим образом. Обратите внимание, что это предполагает, что у вас есть файл с именем get_jira.py, который содержит функцию с именем generate_jira, которая возвращает новое имя jira при каждом запуске.

from flask_restful import Resource, Api, request
from get_jira import generate_jira
import fileinput

app = Flask(__name__)
api = Api(app)

class Get(Resource):
    def get(self):

            ### ACCEPTED PARAMETERS
            source = request.get_json(force=True)['source']
            desc = request.get_json(force=True)['desc']
            jira = generate_jira()

            return jsonify({"desc":desc},{"source": source},{"jira": jira})

api.add_resource(Get, '/api/v1.0')

if __name__ == '__main__':
    app.run(port=5000,debug=True,use_reloader=True)
...