swagger-codegen, lorsque vous définissez une API dans un format spécifique, Il crache une bibliothèque pour le frapper dans différentes langues.
Cela va bien avec Rails 'Grape, et si j'essaye de frapper un serveur d'API fait avec Rails de python, c'est le sujet principal.
Comme vous pouvez le voir en lisant le code de swagger-codegen,
Lors de la création d'un fichier, le nom du fichier doit être ʻapi_v1_name, mais il est généré comme ʻapi :: v1 :: name
, et le nom de fichier et le chemin spécifiés par import mesh bien. N'est pas ... Par conséquent, j'obtiens une erreur d'importation.
C'est une petite erreur, donc je pense que ça va être corrigé bientôt, mais je veux pouvoir communiquer tout de suite.
Alors remplaçons la fonction et résolvons-la. En ce qui concerne le remplacement, "So easy! Customize Swagger Codegen" a été très utile.
custom-script.groovy
@Grab('io.swagger:swagger-codegen-cli:2.1.4')
import io.swagger.codegen.*;
import io.swagger.codegen.languages.*;
class MyPythonClientGen extends PythonClientCodegen {
@Override
public String toModelFilename(String name){
return toVarName(name)
}
//Kick to CLI
public static main(String[] args) {
SwaggerCodegen.main(args)
}
}
groovy custom-script.groovy generate -i http://example.com/api/v1/swagger_doc -l MyPythonClientGen -o ./api/
avec ça,
Les fichiers sont maintenant générés avec ʻapi_v1_name au lieu de ʻapi :: v1 :: name
. Si vous trouvez cela gênant, vous souhaiterez peut-être renommer manuellement le fichier.
Recommended Posts