You are viewing the Portuguese (Brazil) site, but your language preference is set to English. Switch to English site →

Menu

Expand
Classifique esta página:

Automação do fluxo de trabalho com Java e Servlets

Um dos conceitos mais abstratos que você lidará ao criar sua empresa é como será o fluxo de trabalho.

Em sua essência, a configuração de um fluxo de trabalho padronizado é permitir que seus provedores de serviços (agentes, hosts, representantes de atendimento ao cliente, administradores e o restante da equipe) atendam melhor aos seus clientes.

Para ilustrar um exemplo muito real, hoje vamos construir um webapp do Java e Servlets para encontrar e reservar propriedades de férias, chamado provisoriamente de Airtng.

Veja como ficará:

  1. Um host cria uma listagem de propriedades de férias
  2. Um hóspede solicita uma reserva para um estabelecimento
  3. O host recebe um SMS notificando‐o sobre a solicitação de reserva. O host pode aceitar ou rejeitar a reserva
  4. O hóspede é notificado se uma solicitação foi rejeitada ou aceita

Saiba como a Airbnb usou o Twilio SMS para simplificar a experiência de aluguel para mais de 60 milhões de viajantes em todo o mundo.

Blocos de construção do fluxo de trabalho

Usaremos a API REST da Twilio para enviar mensagens aos nossos usuários em encontros importantes. Veja um pouco mais sobre nossa API:

Pronto para começar? Clique com ousadia no botão logo após esta frase.

Avance com ousadia para a próxima etapa

Gerenciamento de usuários e sessões

Para que esse fluxo de trabalho funcione, precisamos ter um modelo de usuário e permitir logins.

Loading Code Sample...
        
        
        src/main/java/org/twilio/airtng/models/User.java

        User and Session Management

        src/main/java/org/twilio/airtng/models/User.java

        Em seguida, vamos dar uma olhada no modelo de propriedade de férias.

        Next

        Modelo de propriedade de férias

        Para construir uma verdadeira empresa de aluguel de férias, precisaremos de uma maneira de criar uma lista de aluguel de propriedade.

        O modelo VacationProperty pertence ao User que o criou (chamaremos esse usuário de host para avançar) e contém apenas duas propriedades: uma description e uma imageUrl.

        O modelo tem duas associações implementadas: há muitas reservas nele e muitos usuários podem fazer essas reservas.

        Loading Code Sample...
              
              
              src/main/java/org/twilio/airtng/models/VacationProperty.java

              Vacation Property Model

              src/main/java/org/twilio/airtng/models/VacationProperty.java

              Em seguida, vamos analisar o modelo de reserva muito importante.

              Next

              O modelo de reserva

              O modelo Reservation está no centro do fluxo de trabalho para este aplicativo. É responsável por manter o controle de:

              • O guest que realizou a reserva
              • O vacation property que o hóspede está solicitando (e host associado)
              • O status da reserva: pending, confirmed ou rejected
              Loading Code Sample...
                    
                    
                    src/main/java/org/twilio/airtng/models/Reservation.java

                    The Reservation Model

                    src/main/java/org/twilio/airtng/models/Reservation.java

                    Em seguida, mostraremos como nosso novo aplicativo criará uma nova reserva.

                    Next

                    Criar uma reserva

                    O formulário de criação de reserva contém apenas um campo: a mensagem que será enviada ao host ao reservar uma de suas propriedades.

                    O restante das informações necessárias para criar uma reserva é retirado do usuário conectado e da relação entre uma propriedade e seu proprietário. Nosso Repository genérico básico é responsável pelo manuseio da inserção da entidade.

                    Uma reserva é criada com um status padrão pending. que permite que nosso aplicativo reaja facilmente a um host que rejeite ou aceite uma solicitação de reserva.

                    Loading Code Sample...
                          
                          
                          src/main/java/org/twilio/airtng/servlets/ReservationServlet.java

                          Create a new reservation

                          src/main/java/org/twilio/airtng/servlets/ReservationServlet.java

                          Agora, vamos ver como o sistema notificará um host quando uma nova solicitação de reserva for enviada.

                          Next

                          Notificar o host

                          Quando uma reserva é criada para uma propriedade, queremos notificar o proprietário de que alguém fez uma reserva.

                          Usamos uma abstração chamada SmsNotifier que, nos bastidores, usa outra abstração chamada Sender. Aqui é onde usamos a API REST da Twilio para enviar uma mensagem SMS ao host usando seu número de telefone da Twilio. É isso mesmo - é tão simples quanto enviar um SMS com a Twilio.

                          Loading Code Sample...
                                
                                
                                src/main/java/org/twilio/airtng/lib/sms/Sender.java

                                Notify the host

                                src/main/java/org/twilio/airtng/lib/sms/Sender.java

                                A próxima etapa mostra como lidar com um host aceitando ou rejeitando uma solicitação - vamos continuar.

                                Next

                                Tratamento de mensagens recebidas

                                Vamos dar uma olhada mais detalhada no servlet ReservationConfirmation. Esse servlet lida com nossa solicitação da Twilio recebida e faz três coisas:

                                1. Verifica se há uma reserva pendente do usuário de entrada.
                                2. Atualiza o status da reserva.
                                3. Responde ao host e envia notificação ao hóspede.
                                Next

                                Solicitações recebidas da Twilio

                                No Console da Twilio, você deve alterar o webhook "A Message Comes In (Uma mensagem chega)" para chamar o endpoint do seu aplicativo na rota /reservation-confirmation:

                                SMS Webhook

                                Uma maneira de expor sua máquina ao mundo durante o desenvolvimento é usar o ngrok. Seu URL para o webhook do SMS em seu número de telefone deve ter a seguinte aparência:

                                http://<subdomain>.ngrok.io/reservation-confirmation

                                Uma solicitação recebida da Twilio vem com alguns parâmetros úteis, incluindo o número de telefone From e a mensagem Body.

                                Usaremos o parâmetro From para pesquisar o host e verificar se ele tem alguma reserva pendente. Se ele fizer isso, usaremos o corpo da mensagem para verificar se há um "aceitar" ou "rejeitar".

                                Por fim, atualizamos o status da reserva e usamos a abstração SmsNotifier para enviar um SMS ao hóspede com as notícias.

                                Loading Code Sample...
                                      
                                      
                                      Webhook para lidar com a decisão do host

                                      Handle incoming messages

                                      Webhook para lidar com a decisão do host

                                      Em seguida, vamos ver como responderemos à Twilio.

                                      Next

                                      Resposta do TwiML

                                      Por fim, usaremos o TwiML da Twilio como resposta ao servidor da Twilio, instruindo‐o a enviar uma mensagem de notificação via SMS ao host.

                                      Usaremos o verbo Message para instruir o servidor da Twilio de que ele deve enviar a mensagem.

                                      Loading Code Sample...
                                            
                                            
                                            src/main/java/org/twilio/airtng/servlets/ReservationConfirmationServlet.java

                                            Criar uma resposta do TwiML

                                            src/main/java/org/twilio/airtng/servlets/ReservationConfirmationServlet.java

                                            Parabéns! Você acabou de aprender a automatizar seu fluxo de trabalho com o Twilio SMS.

                                            Em seguida, vamos ver alguns outros recursos interessantes que você pode querer adicionar ao seu aplicativo.

                                            Next

                                            Para onde ir em seguida?

                                            Gosta da Twilio? Gosta de Java? Você está no lugar certo. Aqui estão alguns outros excelentes tutoriais:

                                            SMS and MMS notifications (Notificações de SMS e MMS)

                                            Crie um sistema de notificação de servidor que alertará todos os administradores por meio de SMS quando ocorrer uma interrupção no servidor.

                                            Click to Call (Clique para ligar)

                                            Converta o tráfego da web em chamadas telefônicas com o clique de um botão.

                                            Isso ajudou?

                                            Obrigado por conferir este tutorial! Envie um tweet para nós em @twilio com o que você está criando!

                                            Kevin Segovia Daniel Erazo
                                            Classifique esta página:

                                            Precisa de ajuda?

                                            Às vezes, todos nós precisamos; a programação é difícil. Receba ajuda agora da nossa equipe de suporte, ou confie na sabedoria da multidão navegando pelo Stack Overflow Collective da Twilio ou buscando a tag Twilio no Stack Overflow.

                                            Loading Code Sample...
                                                  
                                                  
                                                  

                                                  Obrigado pelo seu feedback!

                                                  Selecione o(s) motivo(s) para seu feedback. As informações adicionais que você fornece nos ajudam a melhorar nossa documentação:

                                                  Enviando seu feedback...
                                                  🎉 Obrigado pelo seu feedback!
                                                  Algo deu errado. Tente novamente.

                                                  Obrigado pelo seu feedback!

                                                  thanks-feedback-gif