J'ai une question assez simple :)comment générer un paramètre URI pour simuler basePath dynamique en utilisant swagger codegen?
Selon feindre des documents, ils soutiennent à changer le basePath d'un objet client feindre dynamiquement par le passage de paramètre URI Trough la fonction api like so:
bon exemple:
interface MyClient {
@RequestLine("GET /internal-service")
String internalService(URI baseUrl);
}
La chose est que je utilise fanfaronnades, qui génère mon API à partir d'un fichier YAML et en ajoutant l'annotation @param à tous les paramètres de la fonction, ce qui est bon pour moi.
BAD Exemple:
interface MyClient {
@RequestLine("GET {baseUrl}/internal-service")
String internalService(@Param("baseUrl") String host);
}
Y at-il un moyen de faire générateur de fanfaronnades pour générer une API avec un URI param, sans l'annotation @param?
Résultat souhaité Exemple:
interface MyClient {
@RequestLine("POST /internal-service")
String internalService(URI baseUrl, @Param("someParam") String someParam);
}
Pour obtenir ceci, vous devrez modifier à la fois le modèle et le générateur, vous pouvez ouvrir un problème sur github comme une amélioration ou une suggestion pour le générateur de simulation car cela fait partie du langage. Pour commencer, vous devrez être capable de différencier le paramètre qui est l'URI dans le yaml afin qu'il puisse ensuite être analysé différemment dans le générateur et afficher correctement dans le template et donc le code généré. – moondaisy
Merci beaucoup @moondaisy! Bon, j'ai besoin de changer le template mais pas forcément le générateur. Je peux utiliser la configuration pour que Swagger utilise mon nouveau modèle. Peu importe, je vais suggérer cette amélioration à swagger comme vous l'avez suggéré :) – dorony
Cela fonctionne mais il mettra le paramètre 'URI' dans toutes les méthodes de toutes vos interfaces, je pensais que vous pourriez en avoir sans cela, c'est pourquoi j'ai suggéré de modifier le générateur. Content que tu trouves une solution! – moondaisy