Use Swagger Codegen para generar código de cliente de servidor de Python
Versión Swagger Codegen utilizada
swagger-codegen-cli-2.4.32.jar
generar codigo
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
La estructura de directorios generada se muestra en la siguiente figura
Configuración del entorno
Configurar entorno virtual (virtualenv opcional)
Utilizo el entorno virtual generado por virtualenv para ejecutar, y otros entornos virtualizados son iguales, así que aquí solo publico el comando virtualenv
$ virtualenv venv
$ source venv/bin/activate
$ pip install -r requirements.txt
Luego, el código generado por defecto debe modificarse o confirmarse en dos lugares
modificar el primer archivo
La ruta es swagger_client/api/ init.py La ruta original de DefaultApi es incorrecta y
no se puede importar, por lo que debe cambiarse a la siguiente imagen
segundo archivo
Confirme si DefaultApi se puede importar normalmente
tercer archivo
Es posible que la ruta del archivo swagger_client/configuration.py deba cambiar el protocolo https a http; de lo contrario, se informará un error de autenticación SSL.
empezar a probar
Creamos un archivo python nosotros mismos. Lo llamo testray.py aquí. Debe colocarse en el mismo directorio que el archivo setup.py, que es la capa más externa. Agregue el siguiente contenido
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)
En este momento, si ejecuto este archivo, se devolverá el resultado de la interfaz correspondiente.