Écrire votre service Web

Ce guide explique comment écrire un service Web Java à exécuter dans l'environnement standard App Engine. Pour en savoir plus sur l'environnement d'exécution Java et son fonctionnement, consultez la page Environnement d'exécution Java.

Avant de commencer

Si ce n'est pas déjà fait :

  1. Installez la dernière version du kit de développement Java (JDK) pour la version d'exécution App Engine que vous envisagez d'utiliser.
  2. Téléchargez et installez Apache Maven pour créer, exécuter et déployer l'exemple d'application.

Points essentiels

  • App Engine démarre votre application en important une application JAR exécutable.
  • Votre application doit comporter une classe principale qui démarre un serveur Web répondant aux requêtes HTTP sur le port spécifié par la variable d'environnement PORT, généralement 8080.
  • Vous avez besoin d'un fichier app.yaml pour déployer votre service sur App Engine.
  • Vous pouvez utiliser les dépendances en les répertoriant dans votre fichier pom.xml. Pour en savoir plus, consultez la section Utiliser les bibliothèques Java.

Créer une classe principale

Le serveur HTTP est au cœur de votre service Web. L'exemple de code de ce guide utilise le framework Spring Boot pour gérer les requêtes HTTP, mais vous êtes libre d'utiliser le framework Web de votre choix.

  1. Générez un projet Spring Boot pour Java qui utilise le système de compilation Maven et contient la dépendance Spring Web. Pour commencer, cliquez sur le lien suivant :

    Accéder à Spring Initializr

  2. Dans Spring Initializr, cliquez sur le bouton Generate (Générer) pour générer et télécharger votre projet.

  3. Dans le projet téléchargé, modifiez le fichier springboot/src/main/java/com/example/appengine/springboot/DemoApplication.java pour ajouter des importations Java et un gestionnaire REST hello :

    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 classe modifiée est un contrôleur qui démarre le serveur Tomcat intégré à Spring Boot et répond aux requêtes GET sur le chemin racine ('/') avec le texte "Hello World".

Exécuter le serveur en local

Pour exécuter le serveur en local :

  1. Démarrez un serveur Web local à l'aide du plug-in Maven Spring Boot.

    mvn spring-boot:run
    
  2. Dans votre navigateur Web, saisissez l'adresse suivante :
    http://localhost:8080

Le message Hello World de l'exemple d'application s'affiche sur la page. Dans votre fenêtre de terminal, appuyez sur Ctrl+C pour quitter le serveur Web.

Créer le fichier app.yaml

Pour spécifier les paramètres de votre application dans l'environnement d'exécution App Engine, procédez comme suit :

  1. Créez un fichier nommé app.yaml dans le répertoire suivant :
    springboot/src/main/appengine/

  2. Ajoutez le contenu suivant au fichier :

    Java 21

    runtime: java21
    

    Le fichier app.yaml peut également spécifier des paramètres réseau, des paramètres de scaling, etc. Pour en savoir plus, consultez la documentation de référence sur app.yaml.

Si vous avez utilisé le lien Spring Initializr ci-dessus, vous devriez maintenant obtenir une structure de fichiers semblable à celle-ci :

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

Vous pouvez également ajouter dans le fichier pom.xml du projet le plug-in Maven qui permet le déploiement de l'application :

            <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>

Étapes suivantes

Maintenant que vous avez créé un serveur Web Java simple qui écoute le port approprié, et que vous avez spécifié l'environnement d'exécution dans un fichier app.yaml, vous êtes prêt à déployer votre service sur App Engine.