Возврат 204 Нет содержимого из функции фляги - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть этот код сервера, где я использую add_url_rule для добавления функции просмотра.

        app = connexion.App(__name__, specification_dir='./swagger/')
        app.add_url_rule('/etsiproxy/notify/<vnf_id>',
                        view_func=handle_sol003_notifications,
                        methods=['GET', 'POST'])

        app.server = 'tornado'

        # This is run from a different thread, create a default event loop for
        # this thread for tornado.
        loop = asyncio.new_event_loop()
        asyncio.set_event_loop(loop)

        self.threadLoop = loop

        # Flask with Tornado works in single thread. Use the thread to store
        # the server object, so that it can be accessed from the handler
        thr = threading.current_thread()
        thr.api_provider = self

        app.run(server='tornado', port=self._port, host=self._host, debug=False)

Это моя функция обработчика:

def handle_sol003_notifications(cls, vnf_id):
    notification = connexion.request.get_json()

    if connexion.request.method == 'GET':
        return None, 204

    if notification['notificationType'] == 'VnfLcmOperationOccurrenceNotification':
        payload = Sol003Yang.YangInput_Sol003_Sol003Rpc.from_dict(
            {"vnfinstanceid": notification['vnfInstanceId'],
            "notificationstatus": notification['notificationStatus'],
            "operationstate": notification['operationState'],
            "operation": notification['operation'],
            "vnflcmopoccid": notification['vnfLcmOpOccId'],
            })

        task = get_api_provider().run_in_tasklet_loop(cls.DTS.query_rpc("I,/sol003:sol003-rpc", 0, payload))


    return None, 204

Когда запрос на публикациюнажмите на этот URL, я получу эту ошибку: TypeError: функция просмотра не вернула правильный ответ.Это потому, что я возвращаю None, а фляга не нравится.

Но если я использую return '', 204 , это выдаст еще одну ошибку, сказав, что нельзя отправить тело с 204.

Как я могу вернуть 204 контента в этом случае?

...