Dropwizard Tutorial-Hello World Example

Dropwizard is an open source Java framework for the rapid development of REST APIs. Dropwizard é um tipo de ecossistema que contém todas as dependências (como Jersey, jackson ou jetty) agrupadas em um único pacote ou pode ser adicionado como módulo separado. Se você não estiver usando o dropwizard, você vai acabar coletando todas as dependências você mesmo e isso muitas vezes resulta em problemas de carregamento de classes devido ao desajustamento de versões entre várias bibliotecas java. Dropwizard resolve este problema para você, e reúne bibliotecas estáveis e maduras em um simples pacote leve que permite que você se concentre em fazer as coisas. Vamos aprender a usar o dropwizard para construir APIs de descanso-passo a passo.

Table of ContentsLibraries included inside dropwizardSetup dropwizard with mavenCreate REST Application ClassCreate REST Resource and APIsBuild Resource RepresentationsRequest ValidationVerify REST APIs
você precisará do Java 8 para executar os exemplos dados neste código que são desenvolvidos usando dropwizard Versão 1.0.0.

bibliotecas incluídas dentro do dropwizard

uma vez que você inclui dropwizard em seu projeto, você recebe as seguintes bibliotecas adicionadas ao seu classpath.

  • Jersey-For building RESTful web applications.
  • Jetty-Dropwizard usa a biblioteca HTTP Jetty para incorporar um Servidor HTTP diretamente no seu projeto.
  • Jackson-para objeto de conversão de JSON. Ele permite exportar seus modelos de domínio diretamente com anotações JAXB.
  • goiaba-estruturas de dados imutáveis altamente otimizadas para acelerar o desenvolvimento.
  • Logback e SLF4j-para registro flexível e performante.
  • hibernar validador – um quadro declarativo fácil para validar a entrada do utilizador e gerar mensagens de erro úteis e amigáveis com i18n.
  • Apache HTTPClient-para a interação de baixo e alto nível com outros serviços web.JDBI-a maneira mais direta de usar um banco de dados relacional com Java.
  • Liquidbase-para manter o esquema da sua base de dados em cheque ao longo do seu ciclo de desenvolvimento e lançamento.
  • sistemas FreeMarker – templating.Bigode-Sistemas de templação simples para aplicações mais viradas para o utilizador.
  • Joda Time-biblioteca muito completa e sà para manusear datas e horas.

Setup dropwizard with maven

nosso projeto será baseado no arquétipo-quickstart maven-archetype. Você pode criar o projeto usando a linha de comandos ou usar o eclipse para criar um projeto simples Maven java.

mvn archetype:generate -DgroupId=com.howtodoinjava.demo -DartifactId=DropWizardExample -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

projeto gerado terá pom.xml arquivo também. Adicionar dependência dropwizard aqui.

isto irá baixar todos os ficheiros jar e adicioná-los ao seu classpath. Para adicionar suporte de compilação e pacote ao nosso projeto, vamos usar o plugin maven-shade, que nos permitirá empacotar o nosso projeto completamente, juntamente com suas dependências, em um único arquivo jar autônomo (JAR Fat/Uber) que pode ser distribuído e executado como está.

pom completo.o ficheiro xml parece-se com isto.

Create REST Application Class

Application class is entry point for any dropwizard application. É necessário alargar a classe io.dropwizard.Application e aplicar os métodos initialize(Bootstrap<Configuration>) e run(Configuration, Environment). Eles preparam o ambiente de execução da aplicação.

para invocar o método de execução, terá de ter o método public static void main(String args) {}, que será invocado pelo comando java -jar quando executar a aplicação como ficheiro jar.

para executar o ficheiro JAR, adicionamos o argumento do servidor ao comando que inicia o Servidor HTTP embutido (Jetty) para executar o nosso serviço.

java -jar target\DropWizardExample.jar server

Dropwizard embedded Jetty server will try to bind to ports 8080 and 8081 by default. A porta 8080 é usada pelo servidor para atender pedidos HTTP de entrada para a aplicação, enquanto o 8081 é usado pela interface de administração do Dropwizard.

também importamos as classes necessárias Logger e LoggerFactory para construir uma instância de Logger que poderíamos usar para nossas necessidades de registro.

Create REST Resource and APIs

Now when you have added Application bootstrap class, you can now add REST resources containing REST APIs. Neste exemplo, eu criei e aplicativo de gestão de funcionários-então ele tem APIs para criar/atualizar / excluir registros de funcionários. Esta classe será responsável por lidar com solicitações HTTP e gerar respostas JSON.Como temos Jersey no nosso classpath, vamos usá-la para construir APIs de descanso.

para imitar o DB, eu criei classe EmployeeDB que armazena registros de funcionários e atualizações na memória.

Build Resource Representations

Representation is what holds the data and serialized into JSON. É modelo para uma aplicação repousante. Ao usar Jersey com Jackson, tudo que você precisa para construir uma representação de recursos é – um simples POJO seguindo os padrões java bean. Jackson constrói a cadeia de JSON recursivamente de acordo com os métodos getter de cada classe e seu tipo de retorno.

qualquer instância do tipo java.util.List será convertida para uma matriz JSON.

se necessário em alguns casos, você pode evitar que uma propriedade faça parte da representação JSON adicionando a anotação @JsonIgnore ao seu getter.

solicitar validação

ao aceitar pedidos PUT e POST, terá de validar o conteúdo de entidade apresentado pelo utilizador no organismo de pedido. Dropwizard usa hibernate validator para este propósito. A adição de validação requer passos seguintes.

verificar APIs de repouso

agora, quando criamos e adicionamos validações para APIs de repouso, vamos testar isto.

Build application uber jar file

> mvn clean package

Start application in jetty server

> java -jar target\DropWizardExample-0.0.1-SNAPSHOT.jar server

Access URI http://localhost:8080/employees

This will return employees collection and related response headers.

Dropwizard-obter exemplo de pedido– 1

URI de acessohttp://localhost:8080/employees/1

isto vai devolver o registo do empregado com o id 1.

Dropwizard-obter exemplo de pedido– 2

enviado HTTP PUT http://localhost:8080/employees / 1 com dados de pedido inválidos

irá receber mensagens de validação.

Dropwizard-Validation Example

Sent HTTP PUT http://localhost:8080/employees / 1 with correct data

Employee record will be updated successfully.

Dropwizard-PUT request Example

In same way, you can test other APIs and scenarios.

You might also like

Deixe uma resposta

O seu endereço de email não será publicado.