Я довольно новичок в Flask API, поэтому я надеюсь, что это будет довольно легко решить.
Я работаю над API (сейчас у него есть только одна конечная точка, но как только как мне удастся реализовать его функциональность, еще будет следовать). Я сгенерировал свой API с помощью редактора Swagger и пытаюсь реализовать методы. Мне удалось реализовать метод GET, который не принимает переменных и возвращает файл json.
Сейчас я пытаюсь передать переменную этому методу для некоторых действий.
Моя структура каталогов выглядит следующим образом:
swagger_server/
|---->__main__.py
|---->controllers
'---->default_controller.py
My __main__.py
file (я удалил несколько пустых строк, чтобы сократить этот вопрос):
1 #!/usr/bin/env python3
3 import connexion
5 from swagger_server import encoder
7
8 def main():
9 app = connexion.App(__name__, specification_dir='./swagger/')
10 app.app.json_encoder = encoder.JSONEncoder
11 app.add_api('swagger.yaml', arguments={'title': 'Test API'}, pythonic_params=True)
12 app.run(port=8080)
14
15 if __name__ == '__main__':
16 main()
My default_controller.py
:
1 import connexion
2 import six
3 import os
4 import json
60
61 def get_supported_types(test): # noqa: E501
62 """Retrieve supported types for number test
63 param: test = id of supported type
64 :rtype: InlineResponse200
65 """
66 print(test)
70
71 return 'blabla'
Без параметра я смог получить данные с помощью curl как это curl -H 'Authorization: 0123' -H --trace-ascii /tmp/dump.txt 'http://127.0.0.1:3080/v1/supported_types'
Я попытался добавить дополнительный заголовок с -H "test: 15"
, чтобы добавить его к URL http://127.0.0.1:3080/v1/supported_types?test=15
(что привело к 500 Ошибка сервера) и http://127.0.0.1:3080/v1/supported_types/?test=15
(что привело к Ошибка 404 не найдена).
Также я прочитал немного о @ app.route, который я пробовал, но это не сработало:
@app.route("/v1/supported_types/", methods=['GET'])
NameError: name 'app' is not defined
Может кто-нибудь помочь мне передать этот аргумент к методу?