Code Snippets

Compartir esta publicación

Code Snippets sirve como herramienta para que los desarrolladores utilicen muestras como documentación, y ayudar al desarrollo antes de leer un tema en su totalidad. Debido a su especial consideración, hemos hecho algunos ejemplos de muestras y fragmentos de código eficaces que siguen:

  • Indicaciones: donde el código se ajusta a los elementos requeridos. Siguiendo las mejores prácticas de código.
  • Propósito: demostrar una funcionalidad específica.

Estos son los Code Snippets de Joaquín Caro, Tech Lead en Apiumhub:

a) Validar y probar las API con RestAssured

Descripción

RestAssured es una librería para validar y probar nuestras APIS. Un ejemplo sencillo para validar si una API cumple con el contrato que queremos sería:

Lenguaje/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());
}

Y el esquema JSON debería ser:

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) Interfaz funcional

Descripción

Desde la llegada de Java 8, una interfaz con un solo método se considera una interfaz funcional y puede implementarse como una lambda.

Lenguaje/Framework

Java

// Interface
@FunctionalInterface
public interface FeatureFlagService {
// Interface
@FunctionalInterface
public interface FeatureFlagService {
    Boolean isEnabled(String key);
}
​
// Implementation
FeatureFlagService flagService = key -> true;

Conclusiones

Puedes notar que las interfaces están marcadas con la anotación @FunctionalInterface. Esto es sólo para ayudar a otros desarrolladores a entender que esto es claramente una interfaz funcional, y se supone que sólo tiene un método.

  Libros inspiradores para desarrolladores

Las interfaces están marcadas con la anotación @FunctionalInterface. Esto es sólo para ayudar a los desarrolladores a entender lo que es una interfaz funcional, y se supone que sólo tiene un único método.

Author

  • Joaquin Caro

    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.

    Ver todas las entradas

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Suscríbete a nuestro boletín de noticias

Recibe actualizaciones de los últimos descubrimientos tecnológicos

¿Tienes un proyecto desafiante?

Podemos trabajar juntos

apiumhub software development projects barcelona
Secured By miniOrange