Escribir tu servicio web

En esta guía, se muestra cómo escribir un servicio web de Java para ejecutarse en el entorno estándar de App Engine. Para obtener más información sobre el entorno de ejecución de Java y cómo funciona, consulta Entorno de ejecución de Java.

Antes de comenzar

Si aún no lo hiciste, completa estos pasos:

  1. Instala la última versión del kit de desarrollo de Java (JDK) para la versión del entorno de ejecución de App Engine que planeas usar.
  2. Descarga e instala Apache Maven para compilar, ejecutar e implementar la app de muestra.

Puntos clave

  • App Engine inicia la aplicación mediante la carga de una aplicación JAR ejecutable.
  • La aplicación debe tener una clase principal que inicie un servidor web que responda a las solicitudes HTTP en el puerto especificado por la variable de entorno PORT, por lo general, 8080.
  • Necesitas un archivo app.yaml para implementar el servicio en App Engine.
  • Puedes usar dependencias. Para ello, inclúyelas en una lista en el archivo pom.xml. Para obtener más información, consulta Usa bibliotecas de Java.

Crea una clase principal

El núcleo de tu servicio web es el servidor HTTP. En el código de muestra de esta guía, se usa el framework Spring Boot para administrar las solicitudes HTTP, pero puedes usar el framework web que desees.

  1. Genera un proyecto de Spring Boot para Java que use el sistema de compilación de Maven y contenga la dependencia de Spring Web. Para comenzar, haz clic en el siguiente vínculo:

    Ir a Spring Initializr

  2. En Spring Initializer, haz clic en el botón Generate para generar y descargar el proyecto.

  3. En el proyecto descargado, edita el archivo springboot/src/main/java/com/example/appengine/springboot/DemoApplication.java para agregar algunas importaciones de Java y un controlador hello de REST:

    package com.example.appengine.springboot;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    @SpringBootApplication
    @RestController
    public class DemoApplication {
    public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
    }
    @GetMapping("/")
    public String hello() {
    return "Hello world!";
    }
    }
    

    La clase modificada es un controlador que inicia el servidor Tomcat incorporado de Spring Boot y responde a las solicitudes GET en la ruta raíz ('/') con el texto “Hello world!”.

Ejecuta el servidor de manera local

Para ejecutar el servidor de manera local, haz lo siguiente:

  1. Inicia un servidor web local mediante el complemento de Maven para Spring Boot.

    mvn spring-boot:run
    
  2. En el navegador web, ingresa la siguiente dirección:
    http://localhost:8080

El mensaje Hello World de la app de muestra se ve en la página. En la ventana de la terminal, presiona Ctrl + C para salir del servidor web.

Crea el archivo app.yaml

Para especificar la configuración de la app en el entorno de ejecución de App Engine, sigue estos pasos:

  1. Crea un archivo llamado app.yaml en el siguiente directorio:
    springboot/src/main/appengine/

  2. Agrega el siguiente contenido al archivo:

    Java 21

    runtime: java21
    

    El archivo app.yaml también puede especificar la configuración de red, la configuración de escalamiento y más opciones. Para obtener más información, consulta la referencia de app.yaml.

Si usaste el vínculo de Spring Initializr que se proporcionó antes, ahora deberías tener una estructura de archivos como la siguiente:

  • springboot/
    • pom.xml
    • src/main/
      • appengine/
        • app.yaml
      • java/com/example/appengine/springboot/
        • DemoApplication.java

También puedes agregar al archivo pom.xml del proyecto el complemento de Maven que permite la implementación de la aplicación:

            <plugin>
                <groupId>com.google.cloud.tools</groupId>
                <artifactId>appengine-maven-plugin</artifactId>
                <version>2.8.1</version>
                <configuration>
                    <projectId>YOUR_PROJECT_NAME</projectId>
                    <version>YOUR_VERSION</version>
                    <promote>false</promote>
                </configuration>
            </plugin>

Próximos pasos

Ahora que creaste un servidor web Java simple que escucha en el puerto correcto y especificaste el entorno de ejecución en un archivo app.yaml, estás listo para implementar tu servicio en App Engine.