Liderar é influenciar pessoas, não ser chefe

Liderar é influenciar pessoas, não ser chefe

Uma das primeiras coisas que aprendi é que não precisamos de um cargo de liderança para liderar e transformar equipes e ambientes. Quando herdamos lógicas das organizações hierárquicas e aprendemos a nos livrar da culpa de estar liderando algo que ninguém nos deu um título para liderar é uma enorme coisa.

Hoje o que me faz imensamente feliz e agradecida é não trabalhar em uma empresa hierárquica e limitadora de iniciativas, muito pelo contrário, aqui se temos uma ideia, podemos fazer, colocar em prática.

Temos espaço e abertura para movimentos inovadores, existe como se fosse uma crença de que estamos sempre fazendo o nosso melhor, jamais ouvimos por aqui “vocês podem fazer melhor”, estamos sempre fazendo o nosso melhor, agregando sempre novos conhecimentos e crescendo juntos, pois, se algo dá errado aprendemos e evoluímos com os erros, tornando a falha em aprendizado. Sempre as coisas acontecem em conjunto, acredite aqui sempre encontramos aliados.

Quando se trata de fazer as coisas acontecerem eu me vejo como uma pessoa animada, e sempre que identifico algo que possa melhorar, sempre tomo a iniciativa, os erros acontecem, porém, todos trazem aprendizados enormes, e esse aprendizado me ensinou que para ser líder, não precisamos ser chefe de ninguém:

Ser líder, jamais chefe: Quando temos uma visão e levamos essa visão para mais pessoas faremos acontecer, podemos liderar ideias, ter iniciativas e empenhar pessoas para isso acontecerpodemos entender que liderar é fazer com que coisas aconteçam por intermédio de outras pessoas inclusive com outras pessoas. Você sendo uma pessoa que toma decisão e tem responsabilidades você está liderando.

Mandar, não é liderar: Liderar não é controlar, mandar, gerenciar. Todos temos responsabilidades, porém, como líder nosso trabalho é compreender onde cada pessoa encontra-se e como percorrer com ela até onde queremos chegar.

Abraçar todos os problemas, não ajuda a resolvê-los: Dividir com o time problemas sem procurar resolver tudo sozinho auxilia a abrir espaços de lideranças e principalmente o compartilhamento de responsabilidades essencialmente em times auto-gerenciáveis. Se você está o tempo todo ocupado, ou aparenta isso você acaba se distanciando das pessoas, pois, por muitas das vezes elas não querem te atrapalhar e isso acaba atrapalhando a comunicação.

Não confunda pessoas com recursos: Aprendi que ninguém precisa fazer as coisas como eu faria, nem ao menos no tempo que eu faria. Humildade e respeito possibilitam que você se abra para as pessoas e as ideias que elas têm.

Dar sempre o seu melhor: Quando damos o nosso melhor inspiramos e engajamos pessoas.

Pessoas, nada mais que pessoas: Sem elas, nada acontece.

Liderança é uma caminhada e jamais um cargo!

Toda minha caminhada aqui tem sido bastante preciosa, provocadora e prazerosa para mim. Hoje só tenho a agradecer as pessoas que estão comigo nessa jornada, tenho bastante a aprender todos os dias.

Até a próxima.

 

Importância de ouvir o cliente

Importância de ouvir o cliente

João, o construtor

Hoje vivenciei um episódio que ao certo irá me marcar por um bom tempo. Compartilho com você.

Trabalho com desenvolvimento de soluções de software e atendemos a várias empresas de diferentes necessidades. Uma característica é comum a todos: eles buscam solução. Mais do que isto, buscam solução com simplicidade.

O desenvolvimento de software tem em sua origem muitos jargões, siglas, termos, etc. que para quem é “do meio” é sinal de orgulho, inconsciente talvez. Quanto mais letras na sopa de letrinhas do profissional deste setor, a imagem que é vendida é que é de maior capacidade.

O cliente não técnico, mesmo não demonstrando, sente-se intimidado por tantos complicômetros em forma de siglas. Muitas vezes, para não sair por baixo, durante uma conversa sobre projetos, o cliente arrisca alguns termos técnicos, que em geral viram “memes” na rádio peão.

Acontece que se não temos o cuidado de conduzirmos o diálogo para uma zona de entendimento comum entre cliente e time técnico, muitas vezes, criamos um abismo de compreensão que gera fortes quedas ao longo do tempo.

Ou seja, complicamos a compreensão do cliente pelo uso do “tequiniquês” ao invés de inspirar sua confiança usando o “descompliquês”.

Para tornar mais claro

Imagine que você encontrou o sítio dos seus sonhos e o compra. Contrata um engenheiro e conta para ele tudo o que gostaria de contemplar em sua construção: que quer ter espaço grande para pomar, uma varanda ampla e com pé direito alto para convidar amigos para fazer uma comida uma vez por semana. Menciona também que quer manter o pé de abacateiro, centenário, como agradecimento a Natureza por sua beleza e perfeição e não abre mão de ter uma vista da rua que passa a frente da propriedade. Ele projeta.

Com projeto em mãos, você contrata o João que é construtor civil e seu time para materializá-lo. Em conversa com João, ele parece ser uma pessoa honesta e que será capaz de realizar o projeto como o esperado.

Em tempo de negociação, a expectativa é que a entrega ocorra em 5 meses, sendo o pagamento parcelado em 5 parcelas de 20% do valor total cada.

Você explica ao João que você mora longe que poderá visitar a obra somente a cada 30 dias e que qualquer dúvida, para ele entrar em contato. João aceita o combinado.

Passado 30 dias, nenhuma ligação de dúvida do João, ao chegar no local com a expectativa de ver as primeiras paredes já em pé, você encontra o buraco que será o poço artesiano e o espaço para o portão da frente. Surpreso, você realiza o pagamento da parcela 1/5, porém com um ar desconfiado.

60 dias depois, nova visita a obra com expectativa de haver laje e início de telhado, no entanto, o que se vê é a marcação de terreno e fundação. Você questiona se o que foi feito não é muito pouco. João explica em termos técnicos que você não conhece o processo de construção, mas que você pode ficar tranquilo que vai notar diferença na próxima visita. Novo pagamento, parcela 2/5. Sentimento mais profundo de desconfiança.

Nova visita, agora com 90 dias e a expectativa de já haver paredes, janelas, laje, telhado, hidráulica e contra piso, porém desta vez, somente as paredes de pé, mas segundo o João, com a estrutura mais forte que alguém já viu, que aguenta até 10 andares, sendo que você nunca sequer mencionou ter um segundo andar sequer, e nem no projeto consta. Parcela 3/5 paga e sentimento de desconfiança passa a ser de implicância.

Entre os dias 91 e 120, o sonho do projeto passa a tomar ar de preocupação e um “quezinho” de raiva do João, pois toda vez que você o questiona, ele justifica que sua expectativa como cliente é que está muito alta. Sua obra nas mãos do João tem que ter reforço nas “sapatas”, estrutura forte nas “viga” e para ficar bonito, um telhado de pelo menos “8 águas”.

Final do mês 5: a casa mais robusta que você possa imaginar foi entregue, que aguenta 10 andares e que ainda por cima tem poço artesiano (que eu nem tinha pedido).

O que você não contava é que o pé de abacate que você pediu para manter, precisou ser cortado para não afetar a estrutura da casa, segundo o João.

A visão que você que queria ter da rua, ficou tampada pelo portão que mais parede uma entrada de castelo, praticamente uma muralha. “Cortesia” do João para agradar o patraozin.

O espaço que você pediu para a horta foi mantido, mas há mais de 100 metros de distância da casa para não sujar a água do poço artesiano que você não pediu para construir e a varanda de pé direto alto não ficou tão alto quanto você esperava devido ao telhado de “8 águas” que o João fez para você.

Prioridades

João entregou o que foi contratado: um projeto de casa, e entregou mais do que foi contratado: um poço artesiano e uma muralha de portão. Mas era esta a sua prioridade? Com qual sentimento você ficou? Você indicaria o João para outro amigo seu que te pedisse indicação de construtor? Provavelmente não.

Priorizar um projeto, seja de construção civil, de software, mecânico ou de qualquer outra natureza precisa ter como critério o desejo e o sentimento do cliente.

Saber ouvir o cliente, se colocar no lugar dele, considerar o que ele deseja sentir e vivenciar ao receber o projeto que ele está comprando é fator determinante para conduzir um projeto de forma a atender e até mesmo superar as expectativas do cliente.

E esta visão de se colocar no lugar do cliente deve ser comum a todos os envolvidos no time, do gestor ao auxiliar, do analista ao programador, do projetista ao operador de máquina. Se esta visão se perde ao longo do caminho, o resultado será aquém ao desejo do cliente.

Encantamento

Imagine que o João havia entendido o que você realmente queria e ao invés de ter feito um espaço para o pomar há mais de 100 metros de distância da casa, ele tivesse feito o pomar, inclusive com as frutas que você mais gosta e que lembra sua infância já plantadas?

Na varanda com pé direito bem alto, um fogão a lenha e uma churrasqueira rústica com uma bela mesa de alvenaria, que não estava no projeto, mas que conversando com você, seu João percebeu quantas pessoas viriam visitá-lo quando fizesse comida.

Inclusive João surpreendeu e construiu um espaço que após a refeição, todos pudessem descansar ao redor do abacateiro.

Como você se sentiria? Indicaria o João para outro amigo seu?

Conheça-me

É interessante como nós gostamos de falar de nós mesmos. Quando alguém pergunta qual é minha trajetória profissional é muito comum eu começar a falar e não parar mais.

Percebo que este fenômeno não ocorre somente comigo, mas com muitos, senão com a maioria.

Uma pessoa de mais idade quando questionada sobre seus feitos, se tiver o tempo disponível poderá falar por horas a fio. E com muita alegria.

Conhecer o cliente é um ato de escolha. Não se trata de uma técnica, de fingimento, de cumprir tabela, tampouco de um processo.

Trata-se de um desejo genuíno de conhecer o cliente. E para isto o olhar empático é fundamental.

Meu convite: seja você profissional da área que for, tecnologia, construção civil, comércio, metalurgia, etc., queira conhecer seu cliente. Se coloque em seu lugar. Ouça-o com atenção e saberá o que priorizar e como encantá-lo.

Boa empatia a você 😉

Autor: Willian Polis

Autor: Willian Polis


Líder educador na Tegra
- Soluções Digitais, apaixonado por compreender pessoas, gerar soluções através da tecnologia, resolver problemas, aprender coisas novas e dedicar-me totalmente em tudo o que faço. E-mail: polis@tegra.com.br

RanchoDev – De Devs para Devs

RanchoDev – De Devs para Devs

Um dia inteiro de troca de conhecimento, cultura e discussões sobre desenvolvimento.

A Tegra sempre se preocupou em fortalecer a comunidade de Tecnologia, criar mais oportunidades para que as pessoas que vivem em Sorocaba e região pudessem viver a experiência de grandes conferências mas em nossa cidade, com isso tivemos a ideia de organizar o RanchoDev.

O RanchoDev é uma conferência para desenvolvedores de software, esta em sua 3ª edição, já tivemos a oportunidade de trazer diversas palestras e temas diversificados que se relacionam a tecnologia.

Contamos também com apoio e patrocínio de grandes empresas de Sorocaba e região.

O RanchoDev já teve representantes de diversas empresas e comunidades como Henrique Bastos (Fundador do Welcome to the Django), Fabio Akita (Fundador da CodeMiner), Roberto Marin (Gerente de Engenharia no Vivareal), Joaquim Torres (UX na Locaweb), Mauricio Alegretti (Cofundador da Smile, estúdio de games).

Edição 2018

Buscamos através do RanchoDev abordar a maior diversidade de assuntos e os temas que mais atraí a comunidade atualmente.

O evento vai acontecer no dia 29/09 na Faculdade Facens Rod. Senador José Emírio de Moraes,1425 Constantino Matucci, das 8h30 ás 17h30.

PALESTRANTES CONFIRMADOS

Erick Wendel
Node.js, Microservicos e Containerização

Descrição da Palestra: É importante entender como as aplicações funcionam e como a arquitetura está evoluindo. Pensando nisto, abordaremos sobre os benefícios de Docker para criação de microserviços com Node.js.

Mini biografia: Pós graduando em BI with Big Data. Microsoft Most Valuable Professional (MVP). Co-organizador das comunidades NodeBR, Javascript São Paulo, Nerdzão e Nerdgirlz. Consultor Especialista na EW.IT, Microsoft Certified Professional. Possui amplo conhecimento em arquitetura, desenvolvimento e segurança de aplicações. Palestrante nas maiores e mais populares conferências de tecnologia da América latina.

Kete Martins Rufino
Usando GraphQL para reduzir complexidade no front e no back

Descrição da Palestra: Usamos React Native para construir a Nuconta e o GraphQL veio para reduzir a complexidade de manipulação de dados tanto para o front quanto para o backend. A ideia é mostrar quais os prós e contras de usar essa ferramenta num ambiente de micro serviços e mobile hibrido.

Mini biografia: Engenheira de software na Nubank e pouco criativa pra criar bios divertidas.

André Baltieri
Distribuindo Microsserviços de forma inteligente no Microsoft Azure

Descrição da Palestra: Já pensou no trabalho que é distribuir 500, 600 ou até mais de 1000 Microsserviços? E o cache? Banco de Dados? API Gateway? O que é serviço, o que é function? Utilizo Docker? Pois é… Nesta talk vamos falar sobre a distribuição de Microsserviços na nuvem Microsoft de uma forma otimizada!

Mini biografia: Olá eu sou o André Baltieri, desenvolvedor Web desde 2003, já trabalhei aqui no Brasil e nos EUA, em projetos de diversos tamanhos. Faço parte do seleto time de MVPs da Microsoft, desde 2013, um reconhecimento global dado para os maiores influentes em suas tecnologias. Sou palestrante em diversos eventos como ASP.NET Conference, DevXperience, TDC, GDG dentre outros.
Site: andrebaltieri.com

Fernanda Bernardo
Jogos: indo além do simples CSS!

Descrição da Palestra: Há quem pense que o CSS serve somente para aplicar estilos a determinados elementos, e realmente seu principal objetivo é esse! Mas alguém já pensou que seria possível capturar eventos, como um evento de clique por exemplo, e gerar algum tipo de animação com isso? E falar que com isso é possível criar um jogo? Neste talk explicarei como criar um jogo simples, sem uma linha de javascript, usando apenas HTML e CSS. Além de muitas de suas funcionalidades: pseudo-elementos, pseudo-classes, animations, entre outras.

Mini biografia: Desenvolvedora front end, criadora do @help4papers, plataforma para ajudar pessoas a começar a palestrar e a receber feedback de suas palestras, instrutora e mentora, organizadora do TC Talks meetup do @trainingcentr, Microsoft MVP e criadora do @diabetesmaisdoce, aplicativo para facilitar o dia a dia de uma pessoa diabética e blog sobre diabetes.

Filipe Versehgi
Aplicativos nativos com React?

Descrição da Palestra: Um overview sobre o que é o React Native, uma tecnologia que utilizamos na Tegra para criar aplicativos com React. Um código para ambas as plataformas, com ótima performance, fácil manutenção e uma comunidade super ativa.

Mini biografia: Filipe Versehgi é desenvolvedor Frontend na Tegra, onde trabalha no projeto mobile Meu Desconto e Pão de Açúcar Mais. Trabalha com desenvolvimento web há cerca de 6 anos, atuando nas três pontas do desenvolvimento de um projeto: interface, frontend e backend.

Marcelo Rosa
Inteligência Artificial no Mercado Financeiro

Descrição da Palestra: Pioneiras no uso de Analytics, as organizações do setor financeiro, estão explorando os recursos da inteligência artificial para obter insights e criar modelos de negócios melhores e mais lucrativos, além de corresponder às expectativas dos seus clientes, promover transparência, e gerar uma vantagem competitiva sustentável no setor. Acompanhe esta palestra para entender o impacto da inteligência artificial no mercado financeiro.

Mini biografia: Engenheiro de Produção, músico e Consultor de TI na GFT Brasil atuando em tópicos relacionados a Big Data e Advanced Analytics no setor financeiro. Possui experiência com ferramentas de suporte à decisão orientadas a dados como modelos de programação matemática, simulação de sistemas e algoritmos de aprendizado de máquina.

Jose Gustavo Z. Rosa
Ciência dos Dados: Limpar, Organizar, Estudar & Decidir

Descrição da Palestra: A ideia é mostrar de forma simplificada, o workflow de se trabalhar na coleta limpeza e organização dos dados, até o ponto onde análises preliminares são feitas. Também pretendo mostrar código (Python e R) bem como resultados intermediários.

Mini biografia: Gestor de desenvolvimento de software e inovação com pouco mais de 20 anos de experiência em desenvolvimento de software, times ágeis, negócios. Aficcionado pelo processo de “decisão bem informada” fiz especializações e pós graduação em estatística aplicada a ciência dos dados, campo no qual atualmente trabalho estudando a qualidade de combustível no varejo, usando dados coletados em campo.

Carlos Mattos
Desventuras de um Programador no Mundo Corporativo

Descrição da Palestra: Essa palestra é um convite à reflexão sobre a distância entre as expectativas dos jovens iniciando a carreira na área de tecnologia, e as expectativas das empresas de tecnologia. Oportunidades, desafios, comportamento, lições para construir uma carreira de sucesso na área de tecnologia.

Mini biografia: Mattos é pai, professor, escritor e palestrante, apaixonado por tecnologia. Atua na área de desenvolvimento de software para o mercado corporativo desde 1998.
Reconhecido pela Microsoft como MVP por 12 anos consecutivos e como Microsoft Regional Director em 2017 pelas suas contribuições para as comunidades técnicas e acadêmicas.
Mattos é Head of Technology and Innovation na GFT.

Inscreva-se: www.ranchodev.com.br

Edições Anteriores:
folio-02 folio02

folio-05folio05

Todos São Responsáveis pelos Clientes!

Todos São Responsáveis pelos Clientes!

Confira porque todos na empresa, do porteiro ao presidente, são fundamentais quando assunto é encantar o Cliente. Seja no contato pessoal, telefônico, na elaboração de uma proposta e até no cuidado com os processos internos é preciso ter Clientividade! Confira no Direto ao Ponto com César Souza

fonte: blog.cesarsouza.net

As 11 características de um “Time Campeão”

As 11 características de um “Time Campeão”

Um dos maiores desafios dos líderes é o de construir um time de alta performance. Para montar um time campeão, o líder precisa integrar os membros da sua equipe, criando sinergia e obtendo o melhor de cada. Mas nem todos conseguem o grau de integração almejado. Alguns atingem os objetivos propostos à custa da felicidade das pessoas, em um ambiente de competição nociva e discórdia. Outros até criam excelente clima entre as pessoas, mas a equipe não consegue produzir os resultados necessários e reina entre elas uma espécie de integração improdutiva.

Vários executivos me convidam para ajudá-los na integração de suas equipes e com grande frequência me revelam que seus diretores “são craques, super reconhecidos pelo mercado, ganham prêmios, são inteligentes, dominam seus assuntos como poucos, mas, não conseguem jogar juntos”.

Gostaria que você tentasse se lembrar sobre as inúmeras vezes em que presenciou ou soube de pessoas que são competentes individualmente, mas que se mostram incapazes de contribuir para o trabalho em equipe e para maximizar o potencial de cada membro do grupo.

Na prática de esportes visualizamos com mais facilidade os benefícios criados pelo esforço conjunto, integrador e interdependente ou os prejuízos causados pelo individualismo, quando o estrelismo é mais forte que o conjunto. Muitas empresas são parecidas com times de futebol. Elas também possuem craques nos diferentes setores – Finanças, Logística, Marketing, Produção etc. –, mas a própria estrutura departamentalizada que funciona na base do “cada macaco no seu galho” impede a sinergia. A consequência é um custo invisível bastante elevado que corrói a eficácia da empresa como um todo.

Ao longo da minha trajetória tenho observado algumas iniciativas dos líderes que fazem com que um grupo de pessoas, verdadeiras “ilhas de excelência”, se transformem em equipes, em “arquipélagos de excelência” e trabalhem como sinfonias de competências.

A primeira iniciativa que faz a diferença é a correta escolha dos membros da equipe. Muitos líderes negligenciam o processo de escolha e depois passam o resto do tempo gerenciando problemas em vez de lidar com oportunidades.

Os líderes precisam investir muito mais na hora de definir os membros da sua equipe. Nas empresas, precisam resistir à tentação de selecionar pessoas com base no currículo, que apenas registra dados do

passado e não do futuro. Precisam fundamentar suas escolhas mais nas atitudes e menos na competência técnica e formalidades educacionais.

Precisam deixar também de preferir pessoas “feitas à sua imagem e semelhança”, ou seja, quem pensa, age e possui competências semelhantes.

Ter um bom conjunto não significa ter apenas jogadores previsíveis, pois o risco da mediocridade é grande. Pessoas talentosas também podem desenvolver o sentido de conjunto, de trabalho em equipe.

Mas, além da Integração, da força do conjunto, 10 outras características são fundamentais para formar um time de campeões, no futebol ou nas empresas:

– Clareza sobre o gol, o propósito – Conhecimento do mercado / campo de atuação – Capacidade de cuidar do todo, não só da parte – Inovação – Foco – Iniciativa – Perseverança – Humildade – Fazer mais que o combinado e superar obstáculos – Paixão

Nesse time de 11 características, ainda falta elencar o 12º jogador, a TORCIDA, que na empresa pode ser simbolizada pelos stakeholders – clientes, comunidade, parceiros, sociedade, etc – que possuem o grande poder de tornar vencedor um empreendimento quando se apaixonam pela sua causa e pela marca. Ou que também, inversamente, possuem a capacidade de destruir a reputação, imagem e a longevidade de qualquer empresa.

fonte: blog.cesarsouza.net

Implementando API com ASP.NET Core 2.1 — Parte 1

Implementando API com ASP.NET Core 2.1 — Parte 1

Hoje vamos aprender a implementar uma API simples.

ASP.NET Core é uma versão cross-plataform e open-source do .NET framework, utilizado para desenvolvimento de serviços REST baseados em nuvem. Esse serviços são expostos para serem consumidos através de requisições HTTP ou HTTPS.

O cliente (softwares que consomem as APIs) que irá consumir o serviço, pode ser um aplicativo mobile, desktop, página web entre outros.

Na primeira parte, vamos criar uma API que que retornará nomes dos estados brasileiros.

Para os exemplos, é utilizado o Visual Studio 2017. Caso ainda não possua, segue o link para download da versão Community:

Abra o VS 2017 e clique em File > New > Project;

Selecione as opções Visual C# > .NET Core > ASP.NET Core Web Applications;

Informe o nome da aplicação, localização onde será criado o projeto (opcional) e clique em OK;

Uma nova janela será exibida com algumas opções. Certifique-se de utilizar o ASP.NET Core 2.1 e desmarque a opção “Configure for HTTPS”, conforme exemplo abaixo:

Dentre as várias opções, destacamos duas específicas, que são a Empty e API. Na primeira opção, o projeto é criado sem qualquer tipo de template, ou seja, você terá que implementar a API manualmente. Na segunda opção, é criado um projeto utilizando um template padrão, ou seja, será criado uma API de exemplo, pronta para uso. Escolha a opção Empty e clique em OK.

Após o Visual Studio terminar de criar o projeto, temos a seguinte estrutura:

Vamos agora adicionar uma pasta como nome “Controller”.

Clique sobre o nome do projeto, botão direito do mouse e clique em Add > New Folder e coloque o nome mencionado acima na pasta.

Em seguida vamos criar uma nova classe dentro dessa pasta que representa nossa controller.

Clique com o botão direito do mouse sobre o nome da pasta que você acabou de criar, clique em Add > Class e dê o nome “EstadoController”. A estrutura deverá ficar conforme segue imagem abaixo:

Alguns pontos importantes que devem ser ressaltados:

  • Controller são classes que expõe métodos no qual recebem e processam as requisições em nossas aplicações. No controller é onde fica exposto todos os serviços disponíveis da nossa aplicação.
  • Por convenção, todo arquivo .cs que representa um controller possui seu nome finalizado com “Controller”. No exemplo temos o EstadoController.cs, mas se quisessemos criar um novo controle devemos nomea-lo assim: “NomeApiController”.
  • Startup.cs é onde fica contida a inicialização do nosso software.

Vamos agora, iniciar a implementação dos dados a serem retornados. Lembrando que para o exemplo, será feita da forma mais simples possível para o entendimento, portanto não há uma preocupação com a organização do código.

Vamos criar uma nova pasta em nosso projeto. Clique sobre o nome do projeto, botão direito do mouse e clique em Add > New Folder e coloque o nome “Dto”.

Em seguida vamos criar uma nova classe dentro dessa pasta, para isso, clique com o botão direito do mouse sobre a pasta que você acabou de criar, clique em Add > Class e dê o nome “EstadoDto”.

A estrutura deverá ficar conforme a imagem:

Vamos para a implementação da classe “EstadoDto”, que é a responsável por conter as informações do estado, portanto sua estrutura deve ser a seguinte:

Vamos agora para nosso controller, onde devemos criar um novo método privado que irá retornar uma lista de todos os estados brasileiros. Também vamos implementar nossos dois métodos GET, o primeiro busca todas as informações de todos os estado e o segundo retorna somente o estado com o id solicitado.

Abaixo temos nossa estrutura de classe a ser utilizado:

Perceba que nossa classe possui uma herança da “ControllerBase” e dois atributos que são: [ApiController] e [Route(“api/estado”)].

O ControllerBase é uma classe que disponibiliza uma série de recursos para nossa API e o atributo [ApiController] indica que a classe é exposta para receber as requisições. Geralmente o [ApiController] e o ControllerBase são utilizados em conjuntos para potencializar os recursos de nossa API.

Com nossa API pronta, vamos agora configurar nossa inicialização do projeto para que nossa controller receba as requisições. Para isso, abra o arquivo Startup.cs onde sua estrutura deverá ser a seguinte:

Em nosso arquivo Startup.cs temos dois métodos muito importantes para configuração de execução da nossa aplicação.

O ConfigureServices será executado primeiramente e nele recebemos o parametro IServiceCollection, que é um container de serviços que será disponibilizado para a aplicação. Ao adicionar serviços nele, faremos com que estes serviços estejam disponíveis em todo nosso sistema através da injeção de dependência.

Portanto precisamos adicionar o MVC framework, que é reponsável pelo mapeamento e execução das requisições, ou seja, o MVC framework é que direciona para nossa API todas as requisições recebidas em nossa aplicação. Para adicione a seguinte linha de código conforme imagem abaixo:

O método Configure será executado posteriormente ao ConfigureServices e nele configuramos como nossa aplicação deverá processar cada requisição recebida. Aqui definimos os serviços disponíveis para cada requisição recebida.

No método ConfigureServices adicionamos o MVC framework ao nosso container de serviços e nesse método Configure, vamos configurá-lo para que cada requisição utilize o MVC Framework. Para isso, vamos modificar o método conforme imagem abaixo:

Pronto! API finalizada, mas antes de realizar os testes, alguns esclarecimentos pertinentes devem ser feitos.

Repare que nossa classe EstadoController está decorada com o atributo [Router(“api/estado”)]. Esse atributo é o responsável por definir a rota em que deve ser realizado a requisição HTTP ou HTTPS.

Aí vem a pergunta:

“Mas como nossa API sabe qual método deve ser utilizado?”

Repare que cada método nosso também possui um atributo, no caso, [HttpGet] que é um protocolo de comunicação responsável por indicar a ação de leitura de dados, porém em nosso arquivo possuímos duas variantes desse atributo.

O primeiro método possui apenas [HttpGet] e não recebe nenhum parâmetro, portanto ele vai retornar uma lista com todos os estados; o segundo método possui [HttpGet(“{id}”)] e recebe o parâmetro id, onde ele retornará somente o estado que possui aquele id específico, portanto nossa API, através dessas diferenças, consegue definir o método a ser utilizado naquele momento.

Chegou o momento de testarmos tudo o que fizemos. Para isso, execute o projeto e com o endereço e portas definidas, vamos realizar uma requisição.

No meu caso a rota padrão é http://localhost:52544, porém em sua máquina a porta final pode ser diferente, portanto, se atente a isso.

Ao realizar uma requisição no seguinte endereço http://localhost:52544/api/estado, é retornado a lista de todos os estados, conforme imagem:

E por fim, ao realizar uma requisição no seguinte endereço http://localhost:52544/api/estado/1 (note que é passado o parâmetro 1) é retornado somente um estado.

Com isso, temos nossa API de leitura pronta. No próximo post, será implementado a API para persistência das informações.

Renicius Pagotto

Renicius Pagotto

Software Developer .NET na Tegra