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.