
IA e o futuro do profissional de marketing de varejo
Como a IA transforma estratégias e processos, impulsionando a adoção do Positionless Marketing
Relatório exclusivo da Forrester sobre IA em marketing

Na Optimove, estamos a mudar a nossa arquitetura de monolítica para microsserviços.
Por que estamos a passar por essa transição? A nossa motivação vem da vontade de implementar e entregar pequenos pedaços de código para produção, sem depender de outros componentes ou equipas. Assim, os ciclos se tornarão muito mais curtos e a qualidade, muito mais alta.
Atualmente, estamos a usar .Net Core, swagger e docker para essa tarefa. Nesta publicação do blogue, abordaremos alguns conceitos básicos que ajudarão a criar uma API usada como um microsserviço, utilizando .Net Core.
Criaremos uma API básica com uma resposta personalizada.
Mas vamos recuar um pouco: o que é um microsserviço? E por que queremos criar um?
O que são microsserviços?
Para ajudá-lo a compreender o conceito, publiquei algumas citações sobre microsserviços abaixo:
«Um método distinto de desenvolvimento de sistemas de software que tenta se concentrar na construção de módulos de função única com interfaces e operações bem definidas» (Smarbear)
«Um microsserviço é uma funcionalidade empresarial autónoma com interfaces claras e que pode, através dos seus próprios componentes internos, implementar uma arquitetura em camadas» (Wikipedia)
Porquê usar microsserviços?
Os microsserviços têm várias vantagens. São:
E muito mais
É claro que existem algumas desvantagens nos microsserviços:
Duas ferramentas populares que nos ajudarão a construir o nosso microsserviço são o Docker e o Swagger. Vamos nos aprofundar em ambas.
«Em termos simples, o Docker é uma plataforma de software que simplifica o processo de construção, execução, gestão e distribuição de aplicações. Ele faz isso virtualizando o sistema operativo do computador no qual está instalado e em execução.» (FreeCodeCamp)
"O Docker é uma ferramenta projetada para facilitar a criação, implementação e execução de aplicações usando contentores. Os contentores permitem que um programador empacote uma aplicação com todas as partes necessárias, como bibliotecas e outras dependências, e envie tudo como um único pacote.» (Noteworthy)

Swagger é o ecossistema de ferramentas mais utilizado para desenvolver APIs com a Especificação OpenAPI (OAS). O Swagger consiste em ferramentas de código aberto e profissionais, atendendo a quase todas as necessidades e casos de uso.

Basicamente, o Swagger é ótimo para documentação de API, testes e ajuda na criação de projetos de servidor na linguagem de sua escolha, bem como projetos de SDK de cliente.
Este exemplo tornará isso mais claro:
Documentação da API:

Testando sua API por meio da interface de usuário confortável:

Depois de projetar a sua API, pode gerar o código do servidor e do cliente para começar.
Numa abordagem chamada Design first, começa-se com o design da API e gera-se o código a partir do design.
Mas e se quiser escrever o seu código primeiro e depois criar uma documentação Swagger?
A abordagem Code first é a rota mais tradicional. Depois de a API ser codificada diretamente, pode gerar um documento Swagger usando diferentes ferramentas, como o Swashbuckle.
Vamos começar criando uma API simples gerada a partir do Swagger. Depois de abrir um editor Swagger, existem várias opções:
Crie uma conta em https://app.swaggerhub.com
Use o plugin Swagger para Visual Studio Code (ctrl+shift+p editor Swagger)
2. Criei uma API muito básica com 3 chamadas e 2 módulos:
Este é o código YAML:
*swagger: "2.0"
info:
description: "Esta é uma demonstração de um microserviço básico"
version: "1.0.0"
title: "Demonstração de microsserviço"
termsOfService: "http://swagger.io/terms/"
contact:
email: "rima_g@optimove.com"
license:
name: "Apache 2.0"
url: "http://www.apache.org/licenses/LICENSE-2.0.html"
host: "dummy-api.com"
basePath: "/v2"
tags:
É assim que fica:

3. Clique em «Gerar servidor» e clique na linguagem escolhida para exportar o stub do servidor:

Eu escolhi aspnetcore, mas é claro que pode escolher qualquer idioma.
4. Usando a linha de comando, vá para a pasta do projeto e abra-a no Visual Studio Code, usando o comando: 'code .'
5. Vá para /src/IO.Swagger/Controllers/StatusApi.cs
Veja este método:

Vamos alterar a resposta para algo mais personalizado:

public virtual IActionResult GetStatus()
{
//TODO: Descomente a próxima linha para retornar a resposta 200 ou use outras opções, como return this.NotFound(), return this.BadRequest(..), …
ApiStatus res= new ApiStatus();
res.Message="O Notebook é ótimo e a API está funcionando!";
return StatusCode(200, res);
{
6. Abra o Terminal (Terminal->Novo Terminal) ou CTRL+Shift+' e execute o comando de compilação: donet build
Agora, vamos dar uma olhada no dockerfile. Pode encontrá-lo aqui:

Para criar uma imagem, precisamos executar o ficheiro docker:
Cd src/IO.Swagger/
Em seguida, execute o comando de compilação:
docker build -t imdb-demo:1.0.0 -f Dockerfile .
Ou, se não tiver permissões suficientes:
sudo docker build -t imdb-demo:1.0.0 -f Dockerfile .

'imdb-demo' representa o nome da imagem.
1.0.0 é a tag, geralmente usada para especificar a versão
7. Vamos dar uma olhada nas imagens. Use este comando:
sudo docker images

8. Execute a imagem do docker para que possa aceder à API através do localhost:
Volte ao código do Visual Studio e escreva:
sudo docker run -d -p 3003:80 --name imdblocal imdb-demo:1.0.0

Escolhemos a porta 3003 para aceder à API.
«Imdblocal» é o nome desta instância específica.
9. Vamos para localhost/3003

Clique em /status:

E, em seguida, em «Experimente!»

Esta é a resposta personalizada que escrevemos.
Também podemos aceder a ela com esta URL:
Localhost:3003/v2/status

Se ainda quiser usar a abordagem de código primeiro (se já tiver um código API pronto ou simplesmente preferir escrevê-lo do zero), pode usar uma ferramenta para ajudá-lo a gerar a documentação Swagger da sua API.
A lista completa dessas ferramentas pode ser encontrada aqui.
Para .Net Core, usei Swashbuckle.
Usando o Swagger e o .Net Core, aprendemos como criar facilmente um projeto API básico. Criámos uma imagem Docker e executámo-la para que possamos aceder ao nosso serviço através do localhost. Fique atento, na próxima vez, discutiremos a implementação em produção!
Relatório exclusivo da Forrester sobre IA em marketing
Neste relatório exclusivo da Forrester, saiba como os profissionais de marketing globais utilizam IA e Positionless Marketing para otimizar fluxos de trabalho e aumentar a relevância.


Os escritores da equipa da Optimove incluem especialistas em marketing, I&D, produtos, ciência de dados, sucesso do cliente e tecnologia que foram fundamentais na criação do Positionless Marketing, um movimento que permite aos profissionais de marketing fazer tudo e ser tudo.
A experiência diversificada e o conhecimento prático dos líderes da Optimove proporcionam comentários e insights especializados sobre práticas e tendências de marketing comprovadas e de ponta.


