Table of Contents
Code Snippets serves as a tool for developers to use samples as documentation, and we almost always browse code before reading a topic fully. Because of its special regard, we have made some examples of effective code samples and snippets that follow:
- Indications: where the code fits in with required elements. Following code best practices.
- Purpose: to demonstrate specific functionality.
Here are the Code Snippets by Joaquín Caro, Tech Lead at Apiumhub:
a) Validate and test APIs with RestAssured
by
Joaquin Caro
Description
RestAssured is a library to validate and test our APIS. A simple example of validating if an API complies with the contract we want would be:
Language/Framework
Java
@Test
void should_return_allowed_countries() {
Response response = RestAssured.given()
.contentType(ContentType.JSON)
.port(port)
.header(new Header("Accept-language", "en-US"))
.when()
.get("/countries");
response.then().body(matchesJsonSchemaInClasspath("schemas/countriesResponse.json"));
assertThat(response.statusCode()).isEqualTo(HttpStatus.OK.value());
}
And the JSON Scheme should be:
JSON
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"countries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "The ISO 3166-1 alpha-2 code of the country."
},
"name": {
"type": "string",
"description": "The name of the country."
}
},
"required": [
"code",
"name"
]
},
"description": "List of country objects."
}
},
"required": [
"countries"
]
}
b) Functional Interface
by
Joaquin Caro
Description
Since the arrival of Java 8, an interface with a single method is considered a functional interface and can be implemented as a lambda.
Language/Framework
Java
// Interface
@FunctionalInterface
public interface FeatureFlagService {
// Interface
@FunctionalInterface
public interface FeatureFlagService {
Boolean isEnabled(String key);
}
// Implementation
FeatureFlagService flagService = key -> true;
Conclusions
You may notice how interfaces are marked with the @FunctionalInterface
annotation. This is just to help other developers understand that this is clearly a functional interface, and is supposed to have only one method.
Interfaces are marked with the @FunctionalInterface
annotation. This is just to help developers understand what a functional interface is, and it is only supposed to have a single method.
Author
-
Software developer with over 15 years of experience, the last 9 years focussed on JVM. He can play different roles like Software developer, Software Architect, or Tech Lead, always following the best practices and leading by example, delivering high-quality code. Passionate about software craftsmanship and DevOps culture.
View all posts