Skip to content

LucasNasc/micronaut-grpc-kotlin

Repository files navigation

Micronaut + gRPC + kotlin

Version

Languages

English 🇺🇸

Bem-vindo

Uma aplicação utilizando um framework micronaut, utilizando na comunicação o gRPC, um framework RPC de comunicação entre serviços(back-end, front-end, mobile, microserviços... ). Utilizando postgres como banco de dados e kotlin como linguagem de programação.

Tecnologias

  • Java 11
  • Gradle
  • Micronaut 2.1.4
    • micronaut-validation
    • micronaut-kotlin-runtime
    • micronaut-grpc-runtime
    • micronaut-jdbc-hikari
    • micronaut-data-jdbc
    • micronaut-data-processor
    • micronaut-test
  • gRPC
  • Logback
  • Git
  • Postgres

Micronaut

É um framework com foco de criação de microserviços e aplicações serverless, que tem como foco velocidade e pouco consumo de memória utilizando 3 linguagens JVM-based ( Java, Kotlin e Groovy ).

gRPC

framework de comunicaçãoque vem sendo bem repercutido no mercado, pois utiliza como protocolo de comunicação o HTTP2 e tem por padrão, o Protocol Buffer como mecanismo de serialização de dados( porém é possível utilizar outros mecanismos de dados como JSON ), abaixo segue o trecho da representação de um "objeto" no arquivo de extensão ".proto" :

message CustomerReply {
  uint64 id = 1;
  string nome = 2;
  string sobrenome = 3;
}

Um dos diferenciais desse novo "modelo" de comunicação é que possivel enviar e receber um stream de dados. Na aplicação é possivel encontrar um modelo de proto-response utilizando stream ( no método ListAllStream, localizado no arquivo CustomerEndpoint.kt)

Instalando Dependências

O gerenciador de pacotes utilizado no projeto é o gradle, então é necessário antes tudo, instalar as dependências através do comando:

./gradlew build

Rodando o Projeto

No diretório "src/docker" tem um docker-compose com a configurações do banco de dados, para subir o banco rodar o comando no :

docker-compose up

Após o subir o banco rodar o seguinte comando para subir a aplicação:

./gradlew run

Testando a aplicação

A aplicação possui 2 testes automatizados com o objetivo de apresentar o funcionamento do micronaut-test para roda-los bastar utilizar o seguinte comando:

./gradlew test

Para testar suas resquisições gRPC com o padrão de serialização proto-buffer, pode-se utilizar o BloomRPC, que funciona bem semelhante ao postman e insmonia para testar a requisições REST, você pode fazer o download do BloomRPC por aqui. Com ele aberto, basta importar seu arquivo com extensão .proto, e ele já reconhece seu contrato e apresenta todos os metodos inclusos para rodar.

Author

👤 Lucas Nascimento

Show your support

Give a ⭐️ if this project helped you!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages