Vamos dar uma olhada no código para adicionar ao aplicativo esse novo método greetByPeriod. Aqui estou em HelloWorld e points.java. Defini minha nova função greetByPeriod. Ainda tenho o argumento do nome e ele tem um argumento @Named("period"). E, apenas para variar, ainda que o nome seja @Named("period") vou chamar o argumento timeOfDay apenas para mostrar que, qualquer que seja o @Named é o que precisa ser especificado na solicitação. O que estou fazendo aqui é retornar um novo HelloClass(name, timeOfDay). A classe HelloClass na verdade não tinha esse construtor então eu o adicionei, é bem simples. Aqui está a nova construção HelloClass. Passe o nome, o período, construa uma nova mensagem: Bom, aqui seria manhã, digamos Bom dia... Lauren. Bom dia, Lauren. OK, vejamos se funciona. Vou executar no servidor de desenvolvimento salvar minhas alterações, é sempre bom fazer isso. OK, vamos ao localhost no browser. E vou direto ao Explorer do API. Ah, céus. Deu erro. Isso nunca acontece. Falhou em obter configurações de API com status: 500. Tudo bem. A primeira reação é o pânico, a segunda é voltar e checar o código. E vemos que o erro também aparece aqui: Falha em obter configurações de API. Isso significa que tem algo errado com minha função de ponto de extremidade. Vamos ver os pontos de extremidade HelloWorld, greetByPeriod... Tudo parece em ordem. Qual é o problema? Arrá! É um erro de copiar e colar. Veja aqui, eu copiei e colei isso do método anterior, sayHelloByName e esqueci de atualizar o nome da função. Só vou arrumar isso bem rápido. Não se pode ter duas funções expostas com o mesmo nome. O correto é greetByPeriod. Salvar. E, na verdade, quando você faz alterações no código Java e as salva normalmente vai perceber que as alterações são automaticamente propagadas para o localhost. Veja que diz estar "recarregando o aplicativo web". "Um arquivo foi alterado". Então, não preciso executar de novo. Vou direto ao localhost, recarrego o Explorer do API. OK, ótimo. Desta vez, funcionou. Agora, vou fundo em meu API. Aqui está meu novo greetByPeriod. Insiro um nome. E agora é de tarde. Vamos ver a resposta. Aqui está. Boa tarde. Então, "Boa tarde, Buttercup", pois Buttercup é o nome que dei. Uma outra coisa a olhar é o código para index.html e hello.js. Dê uma olhada neles... index.html. O que tivemos de fazer foi adicionar o novo campo de entrada para período chamado period‗field e o novo botão para as novas boas-vindas, em Hello.js. Em enableButtons, precisamos ativar a função para o novo botão. Aqui está o novo botão, input‗greet‗by‗period. Chamaremos essa função de greetByPeriod. Vamos atualizar o rótulo do botão. Agora temos de definir greetByPeriod e aqui está, muito similar a greetByName. Mas obtemos o name‗field, obtemos o valor do nome a partir do HTML e obtemos o período a partir do elemento period‗field. Você constrói a solicitação. E aqui chamamos a função greetByPeriod. E especificamos o argumento. Os argumentos são nome e período. Agora, porque chamamos o período, nomeamos o argumento de período @Period isso tem de corresponder exatamente. A seguir, executamos e chamamos sayHelloCallBack, como antes. E, novamente, isso lança uma caixa de diálogo de alerta exibindo a mensagem na resposta. E isso é tudo.