Como gravar serviços da Web

Este guia mostra como escrever um serviço da Web Java para ser executado no ambiente padrão do App Engine. Para saber mais sobre o ambiente de execução do Java e como ele funciona, consulte Ambiente de execução do Java.

Antes de começar

Caso você ainda não tenha feito:

  1. Instale a versão mais recente do Java Development Kit (JDK) para a versão do ambiente de execução do App Engine que você planeja usar.
  2. Faça o download e instale o Apache Maven para criar, executar e implantar o aplicativo de exemplo.

Pontos principais

  • O App Engine inicia seu aplicativo fazendo upload de um aplicativo JAR executável.
  • Seu aplicativo precisa ter uma classe principal que inicie um servidor da Web que responda às solicitações HTTP na porta especificada pela variável de ambiente PORT, normalmente 8080.
  • Você precisa de um arquivo app.yaml para implantar seu serviço no App Engine.
  • Para usar dependências, liste-as no arquivo pom.xml. Para mais informações, consulte Como usar bibliotecas Java.

Como criar uma classe principal

O núcleo do serviço da Web é o servidor HTTP. O código de exemplo neste guia usa o framework Spring Boot para lidar com solicitações HTTP, mas você está livre para usar um framework da Web de sua preferência.

  1. Gerar um projeto Spring Boot para Java que use o sistema de compilação do Maven e com dependências do Spring Web. Para começar, clique neste link:

    Ir para o Spring Initializr

  2. No Spring Initializer, clique no botão Generate para gerar e fazer o download do seu projeto.

  3. No projeto baixado, edite o arquivo springboot/src/main/java/com/example/appengine/springboot/DemoApplication.java para adicionar algumas importações Java e um manipulador de saudação 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!";
    }
    }
    

    A classe modificada é um controlador que inicia o servidor Tomcat incorporado do Spring Boot e responde com solicitações GET no caminho raiz ('/') com o texto "Hello world!"

Como executar o servidor no local

Para executar o servidor no local:

  1. Inicie um servidor da Web local usando o plug-in Spring Boot Maven.

    mvn spring-boot:run
    
  2. No navegador da Web, digite este endereço:
    http://localhost:8080

A mensagem Hello World do app de amostra é exibida na página. Na janela do terminal, pressione Ctrl+C para sair do servidor da Web.

Como criar o arquivo app.yaml

Para especificar as configurações do aplicativo no ambiente de execução do App Engine:

  1. Crie um arquivo chamado app.yaml no seguinte diretório:
    springboot/src/main/appengine/

  2. Adicione o seguinte conteúdo ao arquivo:

    Java 21

    runtime: java21
    

    O arquivo app.yaml também pode especificar configurações de rede, configurações de escalonamento etc. Para mais informações, consulte a referência de app.yaml.

Se você usou o link Spring Initializer acima, deve ter uma estrutura de arquivo como a seguinte:

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

Também é possível adicionar ao pom.xml do projeto o plug-in do Maven que permite a implantação do aplicativo:

            <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óximas etapas

Agora que você criou um servidor da Web Java simples com listener na porta correta e especificou o ambiente de execução em um arquivo app.yaml, implante o serviço no App Engine.