Better architecture - Lab 1
1. Create the RestApiClientBuilder
class
Steps
- In the
com.workshop
package create a Java class namedRestApiClientBuilder
- Add the following code inside it
import io.restassured.builder.RequestSpecBuilder; import java.util.function.Function; import java.util.function.Supplier; public class RestApiClientBuilder { public <T> T build(Function<Supplier<RequestSpecBuilder>, T> clientCreator) { Supplier<RequestSpecBuilder> requestSpecBuilderSupplier = () -> new RequestSpecBuilder() .addRequestSpecification( new RequestSpecBuilder() .setBaseUri("http://localhost") .setPort(8088) .build()); return clientCreator.apply(requestSpecBuilderSupplier); } }
Expected results
RestApiClientBuilder
class created... don't panic, we will use it later!
2. Create the RestrictionApiClient
class
Steps
- In the
com.workshop
package in thesrc/main/java
folder, create a package calledapi.client
- Create a Java class named
RestrictionsApiClient
in thecom.workshop.api.client
package - Add the following code inside it
import com.eliasnogueira.credit.api.RestrictionsApi; import io.restassured.response.Response; import com.workshop.api.RestApiClientBuilder; import java.util.function.Function; public class RestrictionsApiClient { private RestrictionsApi restrictionsApi = new RestApiClientBuilder().build(RestrictionsApi::restrictions); public Response queryCpf(String cpf) { return restrictionsApi.oneUsingGET().cpfPath(cpf).execute(Function.identity()); } }
Expected results
RestrictionsApiClient
class created... don't panic, we will use it later!
3. Create the RestrictionApiService
class
Steps
- In the
com.workshop
package in thesrc/main/java
folder, create a package calledapi.service
- Create a Java class named
RestrictionsApiService
in thecom.workshop.api.service
package - Add the following code inside it
import com.eliasnogueira.credit.model.MessageV1; import org.apache.http.HttpStatus; import com.workshop.api.client.RestrictionsApiClient; public class RestrictionsApiService { private RestrictionsApiClient restrictionsApiClient = new RestrictionsApiClient(); /** * Query CPF without a restriction */ public boolean queryCpf(String cpf) { restrictionsApiClient.queryCpf(cpf).then().statusCode(HttpStatus.SC_NOT_FOUND); return true; } public MessageV1 queryCpfWithRestriction(String cpf) { return restrictionsApiClient.queryCpf(cpf).then(). statusCode(HttpStatus.SC_OK).extract().as(MessageV1.class); } }
Expected results
RestrictionsApiService
class created... don't panic, we will use it later!