Java / Spring: Como gerar completamente uma API RUD CRUD usando Speedment

Neste artigo, você aprenderá como usar o Speedment para criar uma API REST CRUD completa para um banco de dados.



Está se tornando cada vez mais aparente a cada ano que o Spring Framework é um dos frameworks de desenvolvimento web Java mais amplamente utilizados.

À medida que a próxima década se aproxima, o módulo mais popular do Spring, Spring Boot, acaba de receber uma grande atualização. A nova versão do Spring Boot "2.2.0" e 2020 é quase perfeitamente compatível entre si. Portanto, a equipe de desenvolvimento do Speedment preencheu a lacuna atualizando o plugin Spring Boot.

Se é a primeira vez que você ouve falar sobre o Speedment, você vai gostar, pois mostramos como o plug-in Spring Boot Speedment permite que os desenvolvedores criem sem esforço aplicativos de banco de dados do Spring usando Speedment, ORM com uma poderosa interface de consulta baseada na API de Stream.

Sobre Speedment


A velocidade pode ser descrita como o ORM que a comunidade Java merece - um kit de ferramentas para quem gosta de desenvolvimento rápido e aplicativos ainda mais rápidos.

Ao usar a API Java Stream como principal meio de comunicação com o banco de dados selecionado, o Speedment permite que os desenvolvedores com experiência em Java se sintam em casa. Além da API fácil de usar, o Speedment fornece aos desenvolvedores uma ferramenta gráfica que gera um modelo de domínio para eles em segundos.

Se você estiver interessado no Speedment como um todo, clique no link a seguir para obter documentação detalhada com exemplos . O restante deste artigo se concentrará no plug-in Spring Boot.

Spring Boot: Início mais rápido


O plugin Speedment Spring Boot existe há algum tempo, mas o Speedment 3.2.2 introduziu a função principal - a capacidade de gerar toda a API RUD CRUD diretamente do seu modelo de banco de dados.

Dependendo de você começar do zero ou já ter um projeto, as etapas serão diferentes, mas certifique-se de que o processo de integração seja simples, independentemente do estado do seu projeto.

Se você deseja integrar o Spring Boot a um projeto existente do Speedment, adicione os 2 elementos a seguir no seu pom.xml :

<plugin> <groupId>com.speedment.enterprise</groupId> <artifactId>speedment-enterprise-maven-plugin</artifactId> <version>${speedment.version}</version> <configuration> <components> component>com.speedment.enterprise.plugins.spring.SpringGeneratorBundle</component> </components> <appName>${project.artifactId}</appName> <packageName>${project.groupId}</packageName> </configuration> ... // Database connector dependency </plugin> <dependencies> ... <dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.2.1.RELEASE</version> </dependency> <dependency> <groupId>com.speedment.enterprise.plugins</groupId> <artifactId>spring-runtime</artifactId> <version>${speedment.version}</version> </dependency> ... </dependencies> 

Depois de adicionar esses elementos na próxima regeneração do seu modelo de domínio, a configuração específica do Spring deve ser gerada. A configuração gerada controla as propriedades de conexão com o banco de dados e registro de compartimento para os vários gerenciadores gerados pelo Speedment.

Se você iniciar o projeto do zero, vá para o inicializador , onde um projeto pronto para o Spring Boot será criado para você. A decisão de como você configurará o projeto é sua, mas para incluir o plug-in Spring Boot no projeto gerado, verifique se a caixa de seleção ao lado de Spring está marcada na seção plug-ins. Quando a configuração do projeto combina com você, clique no botão Download e você receberá um arquivo do projeto pronto para uso.



CRUD simplificado


Depois de instalar o plug-in, algumas opções específicas do Spring Boot estarão disponíveis na ferramenta Speedment que você pode usar para configurar sua API REST. Você pode executar a ferramenta Speedment executando o seguinte comando:

 mvn speedment:tool 

Se esta é a primeira vez que você usa o Speedment, você pode se familiarizar com o fluxo de trabalho seguindo o breve tutorial do Hello Speedment .

Por padrão, a ferramenta Speedment não gera uma API REST. Para gerar uma API RUD CRUD para uma tabela específica, selecione a tabela na visualização em árvore e marque a caixa de seleção " Gerar @RestController " junto com a opção " REST Ativar Criar / Atualizar / Excluir ". Quando você clica em Gerar , um conjunto de mapeamentos REST será criado - URLs que implementam operações CRUD para uma tabela específica.



Isso é tudo! A codificação manual não é necessária. Basta executar o projeto Spring gerado, executando o comando:

 mvn spring-boot:run 

Criando entidades usando REST


Para criar uma nova entidade usando a API REST que você criou, você deve executar uma solicitação POST no caminho especificado na ferramenta. Por padrão, o nome desse caminho corresponde ao nome da sua tabela, com o prefixo do nome do seu esquema. Se você desmarcar a caixa de seleção " Ponto de extremidade REST ", poderá especificar um nome de caminho arbitrário. O corpo da solicitação deve conter pares de valores-chave no objeto JSON, em que os valores " Nome do Campo REST " da ferramenta Speedment são chaves.

Por exemplo, se tivermos uma tabela chamada pessoa com ID , nome e idade das colunas, enviaremos a seguinte consulta para criar uma nova pessoa da entidade:

 POST localhost:8080/db/person { "id": 1, "name": "Jane", "age": 25 } 

ou

 curl -d '{"id": 1,"name": "Jane","age": 25}' -H "Content-Type:application/json" -X POST localhost:8080/db/person 

Se o valor da coluna de ID for gerado automaticamente (ou usar uma sequência), você poderá excluí-lo do corpo do POST. Se você deseja excluir à força uma coluna específica do corpo do POST, clique na coluna correspondente na visualização em árvore de ferramentas e desmarque a caixa " Incluir no Criar Corpo " e recrie seu modelo de domínio. Por outro lado, se você deseja garantir a existência de uma coluna específica no corpo do POST ao executar a solicitação, marque “Necessário em Criar Corpo” e recrie seu modelo de domínio.



Recuperando entidades usando o REST


Para obter nossa entidade recém-criada, precisamos executar uma solicitação GET da mesma maneira que foi usada para criar a entidade:

 GET localhost:8080/db/person 

ou

 curl localhost:8080/db/person/1 

Uma solicitação concluída retornará uma matriz JSON de todas as entidades existentes. No nosso caso, ele retornaria uma matriz apenas com nossa única entidade:

 [ { "id": 1, "name": "Jane", "age": 25 } ] 

Conceitos avançados, como filtros e classificadores, estão detalhados na documentação oficial do Speedment.

Atualizando entidades existentes usando REST


A atualização de uma entidade existente usando a API REST é semelhante à criação de uma entidade. Em vez de uma solicitação POST, executamos uma solicitação PATCH e o caminho é expandido com um identificador de entidade. Qual identificador de nossa entidade depende da coluna de chave primária desta tabela. Como nossa coluna PK (chave primária) é um tipo numérico, nosso identificador de entidade será um número inteiro.

Para atualizar a entidade que criamos no exemplo anterior, executaremos a seguinte consulta:

 PATCH localhost:8080/db/person/1 { "name": "Mike", "age": 43 } 

ou
 curl -d '{"name": "Jane","age": 25}' -H "Content-Type:application/json" -X PATCH localhost:8080/db/person/1 

Por padrão, todas as colunas são incluídas no corpo PATCH (exceto a coluna da chave primária), mas não são necessárias. Se você deseja excluir à força uma coluna específica do corpo da solicitação, clique na coluna correspondente na visualização em árvore da ferramenta e desmarque a caixa " Incluir no corpo da atualização " e recrie seu modelo de domínio. Por outro lado, se você deseja garantir a existência de uma coluna no corpo da solicitação, marque “ Necessário no corpo da atualização ” e atualize o modelo de domínio.

Removendo entidades usando o REST


A remoção de uma entidade usando a API REST é bastante simples - executamos uma solicitação DELETE da mesma maneira que é usada para atualizar entidades.

Para remover a entidade que criamos e atualizamos nos exemplos anteriores, executamos a seguinte consulta:

 DELETE localhost:8080/db/person/1 

ou

 curl -X DELETE localhost:8080/db/person/1 

Sumário


O lançamento de novos projetos às vezes pode ser problemático. Como desenvolvedores, queremos evitar esses inconvenientes o máximo possível e mergulhar diretamente na codificação. Com o novo plug-in Speed ​​Boot Spring Boot, os desenvolvedores podem acelerar o lançamento de novos projetos, gerando automaticamente todas as configurações necessárias e controladores REST diretamente do banco de dados.

Esperamos que você tenha gostado deste breve guia sobre os novos recursos CRUD que o plug-in Speedment Spring Boot fornece. Se você estiver interessado em uma explicação mais detalhada das novas funções, vá para a documentação oficial , onde encontrará explicações detalhadas e exemplos de novas funções CRUD.

Leitura adicional


Criando uma API REST Parte 4: Manipulando Solicitações POST, PUT e DELETE

Criando um aplicativo MVC CRUD RESTful Spring Boot básico: Introdução ao Java Spring

Source: https://habr.com/ru/post/pt483026/


All Articles