2017-08-16 2 views
1

Swagger api client, généré par l'outil codegen, crée uniquement des méthodes de test avec le type de retour void. Comment puis-je tester mon api de repos?Swagger api méthodes client return void

Ceci est mon cahier des charges de code de service:

@Api(value = "Authentication Recovery") 
@Path("/authenticationRecovery") 

public class AuthenticationRecoveryResource implements Authentication{ 

@ApiOperation(
     value = "Recover access token" 
     , notes = "Recover access token assigned to the user (once it has been authenticated)" 
     , response = TokenJAXB.class 
     //, responseContainer = "List" 
) 
@ApiResponses(value = { 
     @ApiResponse(code = HttpURLConnection.HTTP_OK, message = "Authorized access") , 
     @ApiResponse(code = HttpURLConnection.HTTP_UNAUTHORIZED, message = "Unauthorized access") 
}) 
@POST 
@Produces(MediaType.APPLICATION_JSON) 
@Consumes(MediaType.APPLICATION_FORM_URLENCODED) 
public Response authenticate(
     @ApiParam(value="Username", required=true) @FormParam("username") String username, 
     @ApiParam(value="Password", required=true) @FormParam("password") String password) 
{..} 

Et ceci est mon code généré Swagger pour le test:

/** 
    * API tests for AuthenticationRecoveryApi 
*/ 
@Ignore 

public class AuthenticationRecoveryApiTest { 

private final AuthenticationRecoveryApi api = new AuthenticationRecoveryApi(); 

/** 
* Recover access token 
* 
* Recover access token assigned to the user (once it has been authenticated) 
* 
* @throws ApiException 
*    if the Api call fails 
*/ 
@Test 
public void authenticateTest() throws ApiException { 
    String username = null; 
    String password = null; 
    api.authenticate(username, password); 

    // TODO: test validations 
}} 

je générer un api client fanfaronnades avec:

java -jar swagger-codegen-2.2.3/modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate -i http://localhost:8080/myproject/services/service0/swagger.json -l java -o client/myproject/java 
+1

Pouvez-vous poster votre spécification? Quel langage/cadre avez-vous généré? – Helen

Répondre

1

Le générateur Java pour le Swagger Codegen fait de son mieux - il a code de test avec des fonctions (plus comme des stubs de fonction) où vous pouvez renseigner la valeur des paramètres à transmettre aux points de terminaison API, tels que les variables String username et String password ci-dessus. Après cela, l'extrémité api est appelée.

Après l'appel API (api.authenticate(username, password) ci-dessus), vous devez en quelque sorte valider si la réponse a réussi. Cela nécessite un élément humain en fonction de votre API, et le commentaire // TODO est un indice pour que vous fassiez de même.

Si l'API est appelée avec succès, vous ne faites rien et la fonction void se ferme. Sinon, votre code doit afficher ApiException comme indiqué dans les commentaires.