Swagger Codegen を使用して Python サーバー クライアント コードを生成する
使用される Swagger Codegen のバージョン
swagger-codegen-cli-2.4.32.jar
コードを生成する
java -jar swagger-codegen-cli.jar generate -i http://xxx.xxx.xxx.xxx:xxxx/v2/api-docs -l python --artifact-id=get-sign-code-gen-python -o ./getSignCodeGenPython
生成されたディレクトリ構造は次の図に示されています
環境構成
仮想環境の構成 (virtualenv はオプション)
virtualenv によって生成された仮想環境を使用して実行しますが、他の仮想化環境も同様であるため、ここでは virtualenv コマンドを投稿するだけです。
$ virtualenv venv
$ source venv/bin/activate
$ pip install -r requirements.txt
次に、デフォルトで生成されたコードを 2 か所で変更または確認する必要があります。
最初のファイルを変更する
パスは swagger_client/api/ init.pyです。元の DefaultApi パスは間違っていて
インポートできないため、次の図に変更する必要があります
2番目のファイル
DefaultApiが正常にインポートできるか確認する
3番目のファイル
ファイル パス swagger_client/configuration.py でプロトコル https を http に変更する必要がある場合があります。変更しないと、SSL 認証エラーが報告されます。
テストを開始する
Python ファイルを自分で作成します。ここでは testray.py とします。最外層の setup.py ファイルと同じディレクトリに配置する必要があります。以下の内容を追加します
from __future__ import print_function
import swagger_client
from swagger_client.rest import ApiException
from pprint import pprint
# create an instance of the API class
api_instance = swagger_client.DefaultApi(swagger_client.ApiClient())
key = 'key_example' # str | key 这个key字段是非必要的
try:
# 获取secret
api_response = api_instance.get_secret_using_get(key) # 这里的get_secret_using_get请改成你们自己生成代码对应的方法,代码提示应该会显示有哪些方法的,不清楚的去 swagger_client/api/_api.py 这个文件的DefaultApi类下去找,有哪些方法
pprint(api_response)
except ApiException as e:
print("Exception when calling DefaultApi->get_secret_using_get: %s\n" % e)
このとき、このファイルを実行すると、対応するインターフェイスの結果が返されます。