anúncios

sexta-feira, 20 de dezembro de 2024

Ambiente Docker online e gratuito para testes de containers

O Docker revolucionou a forma como criamos, distribuímos e executamos aplicações. Mas nem sempre temos um ambiente configurado para experimentar ou aprender sobre essa tecnologia poderosa. É aqui que o Play With Docker brilha. Essa plataforma gratuita oferece um ambiente pronto para explorar o Docker, diretamente no navegador.

O Play With Docker é uma plataforma interativa que permite:

  • Criar instâncias temporárias para executar containers.
  • Praticar comandos do Docker em um terminal baseado em Linux.
  • Testar configurações de rede entre containers.
  • Experimentar tutoriais e conceitos avançados, como Docker Compose, Swarm e volumes.
  • Tudo isso sem precisar instalar nada no seu computador!

Como começar

Ter uma conta no Docker Hub para logar na plataforma Play With Docker

Caso ainda não tiver uma conta no Docker Hub, crie uma gratuitamente

Após logar na plataforma Play With Docker, crie sessões, inicie uma nova sessão e comece a explorar. Você terá até 4 horas por sessão.

Pode adicionar nós, teste múltiplos containers ou crie clusters usando até 5 nós.

Principais funcionalidades

  • Ambiente seguro e temporário:
  • Ideal para testes rápidos.

  • Interface simples:
  • Terminal Linux no navegador. Também pode conectar no SSH da plataforma, basta copiar o endereço no campo SSH e colar no seu terminal e pronto para executar containers usando o terminal do seu computador conectado na plataforma.

Casos de Uso

  • Aprendizado inicial:
  • Execute comandos básicos do Docker sem se preocupar com instalação.

  • Testes de configuração:
  • Simule redes, volumes e clusters.

  • Demonstrações rápidas:
  • Ideal para workshops e apresentações.

Limitações

Sessões são temporárias (máximo de 4 horas).

Recursos limitados em comparação com um ambiente local ou servidor dedicado.

Considerações finais

O Play With Docker é uma excelente ferramenta para quem quer aprender Docker de maneira prática e acessível. Seja para explorar novos conceitos, realizar testes rápidos ou ensinar colegas, ele elimina barreiras iniciais e torna o aprendizado muito mais fluido.

Referências

https://labs.play-with-docker.com/

Feito!

terça-feira, 10 de dezembro de 2024

Utilizando o Faker para criar mocks de API REST

O Faker é uma aplicação de código aberto desenvolvida em Java que ajuda a separar o desenvolvimento frontend do backend, eliminando a necessidade de esperar pelo desenvolvimento da API. Este guia apresenta os passos para criar mocks de API REST usando o Faker e Docker.

Procedimentos:

  1. Instalação do Docker:
  2. Certifique-se de ter o Docker instalado em seu sistema para facilitar o uso do Faker.

    Caso ainda não tenha o Docker instalado na distro Linux com base Debian, então execute no terminal:

    $ sudo apt install docker.io docker-compose
  3. Configuração do diretório mocks:
  4. Crie um diretório chamado "mocks" em seu sistema. Dentro deste diretório, crie arquivos JSON para definir os mocks de API.

  5. Exemplo de arquivo JSON:
  6. Um exemplo de arquivo JSON para um mock de usuários pode ser assim:

    
    {
      "plugins": [
        {
          "name": "list",
          "args": {
            "count": 5,
            "item": {
              "id": "#random:int:min=1&max=1000#",
              "name": "#random:name#",
              "created_at": "#timestamp#",
              "updated_at": "#timestamp#"
            }
          }
        },
        {"name": "random"},
        {"name": "timestamp"}
      ],
      "request": {
        "method": "GET",
        "path": "/v1/users"
      },
      "response": {
        "body": []
      }
    }
    
    

    Este exemplo define um mock para a rota "/v1/users" que retorna uma lista de 5 usuários com campos como "id", "name", "created_at" e "updated_at" gerados aleatoriamente.

  7. Execução do container Docker:
  8. Utilize o seguinte comando Docker para executar o Faker:

    docker run --rm -p 3030:3030 -v /diretorio/mocks:/app/mocks dotronglong/faker:stable

    Este exemplo define um mock para a rota "/v1/users" que retorna uma lista de 5 usuários com campos como "id", "name", "created_at" e "updated_at" gerados aleatoriamente.

    Certifique-se de substituir "/diretorio/mocks" pelo caminho absoluto para o diretório de mocks que você criou anteriormente.

  9. Acessando os mocks de API:
  10. Após iniciar o container Docker, você pode acessar os mocks de API através do seguinte endpoint:

    curl http://localhost:3030/v1/users

    OU no browser http://localhost:3030/v1/users

  11. Recursos adicionais:
  12. Para mais informações e recursos sobre o Faker, consulte o repositório oficial no GitHub:

    https://github.com/dotronglong/faker

  13. Adicionar o Faker Mock no arquivo docker-compose.yml
  14. No diretório, onde estão os arquivos JSON com dados de mock, crie o arquivo

    docker-compose.yml, conforme abaixo:

    
    version: '3.8'
    
    services:
      mock_faker:
        image: dotronglong/faker:stable
        container_name: mock_faker
        ports:
          - "3030:3030"
        volumes:
          - ".:/app/mocks"
        restart: unless-stopped
    
    

    Caso, tenha Faker Mock já está em execução, é necessário finalizar, com docker kill

    Depois, execute docker-compose up -d

    Adicione a URL do Faker Mock com o endpoint definido no arquivo JSON no Postman com o verbo HTTP (GET ou POST).

    Feito!

sexta-feira, 6 de dezembro de 2024

Sua API é REST? Descubra agora

No mundo do desenvolvimento de software, o termo "API REST" tornou-se um padrão amplamente utilizado para integração entre sistemas. No entanto, nem todas as APIs que se apresentam como RESTful seguem, de fato, os princípios fundamentais do REST. Aderir a esses princípios não é apenas uma questão de semântica, mas também de garantir consistência, escalabilidade e facilidade de uso para os desenvolvedores que consomem sua API.

Neste artigo, exploraremos os elementos essenciais que definem uma API RESTful e apresentaremos um guia prático para ajudar você a verificar se sua API está verdadeiramente alinhada a esse padrão.

Descubra como estruturar endpoints, utilizar métodos HTTP corretamente e aplicar boas práticas que tornam sua API mais eficiente e aderente aos conceitos do REST.

O REST (Representational State Transfer) é um estilo arquitetural que define um conjunto de restrições para a criação de serviços web escaláveis e eficientes. Ele foi introduzido por Roy Fielding em sua tese de doutorado em 2000 e tem se tornado a base para a construção de APIs modernas. Para que uma API seja considerada RESTful, ela deve seguir seis princípios fundamentais:

  1. Cliente-Servidor
  2. A arquitetura REST é baseada na separação entre cliente e servidor, o que permite que ambos evoluam de forma independente. O cliente é responsável pela interface do usuário e pela experiência do usuário, enquanto o servidor gerencia o armazenamento e a lógica dos dados. Essa separação melhora a portabilidade do cliente e a escalabilidade do servidor.

  3. Stateless (sem estado)
  4. Cada requisição do cliente ao servidor deve conter todas as informações necessárias para que o servidor entenda e processe o pedido. O servidor não deve armazenar informações sobre o estado do cliente entre as requisições. Isso significa que cada chamada é independente, permitindo que as requisições sejam feitas em qualquer ordem.

  5. Cacheável
  6. As respostas das APIs REST devem ser rotuladas como cacheáveis ou não, permitindo que os clientes armazenem em cache as respostas para otimizar o desempenho. Isso reduz a necessidade de chamadas repetidas ao servidor para obter os mesmos dados, melhorando a eficiência da comunicação.

  7. Interface uniforme
  8. Uma interface uniforme simplifica e desacopla a arquitetura, permitindo que diferentes clientes interajam com o servidor de maneira padronizada. Isso geralmente é implementado através dos métodos HTTP padrão (GET, POST, PUT, DELETE), que definem claramente as operações permitidas em recursos específicos.

  9. Sistema em camadas
  10. A arquitetura REST pode ser composta por várias camadas hierárquicas, onde cada camada não conhece as camadas além daquela com a qual está interagindo. Isso permite que intermediários, como proxies e gateways, sejam utilizados para melhorar a segurança e a escalabilidade sem que o cliente precise conhecer a complexidade interna do servidor.

  11. Código sob demanda (opcional)
  12. Embora não seja uma exigência, as APIs REST podem permitir que o servidor envie código executável ao cliente quando necessário, estendendo a funcionalidade do cliente sem exigir atualizações constantes.

Diferença entre API REST e RESTful

REST: Conjunto de princípios arquiteturais.

RESTful: Implementação desses princípios em um sistema específico.

Exemplos de endpoints da API de Produtos

  • Forma errada de endpoints
  • A forma incorreta de definir os endpoints para uma API de produtos pode levar a confusões e não seguir as melhores práticas do REST. Aqui estão alguns exemplos de endpoints mal estruturados:

    /cadastrarProduto

    /editarProduto

    /atualizarProduto

    /excluirProduto

    Esses endpoints não representam recursos, mas sim ações específicas. Isso vai contra o princípio do REST, que enfatiza a manipulação de recursos através de URLs que representam entidades.

  • Forma correta de endpoints
  • A seguir, apresentamos uma forma correta e mais alinhada com os princípios REST para a API de produtos:

    1. Criar um Produto

    POST /produtos

    Sucesso: 201 Created

    Erro: 422 Unprocessable Entity

    O /produtos representa a coleção de produtos. O método POST é utilizado para criar um novo produto. Caso ocorre algum erro, deve retornar uma mensagem em JSON com código de status 422.

    2. Listar todos os produtos

    GET /produtos

    Permite recuperar uma lista de todos os produtos. Caso, não tiver nenhum produto, deve retornar uma lista vazia.

    3. Recuperar um produto específico

    GET /produtos/1

    Sucesso: 200 OK

    Erro: 404 Not Found

    Isso é para visualizar um produto específico pela sua identificação (ID). O número 1 representa o ID do produto ou caso o produto não existir deve retornar uma mensagem em JSON com código de status 404.

    4. Atualizar um produto existente

    PUT /produtos/1

    Sucesso: 200 OK

    Erro: 404 Not Found

    O método PUT é utilizado para atualizar os dados de um produto existente, identificado pelo ID 1 ou caso o produto não existir deve retornar uma mensagem em JSON com código de status 404.

    5. Excluir um Produto

    DELETE /produtos/1

    Sucesso: 200 OK

    Erro: 404 Not Found

    O método DELETE remove o produto identificado pelo ID 1 ou caso o produto não existir deve retornar uma mensagem em JSON com código de status 404.

    Considerações finais

    Ao projetar uma API, é fundamental seguir os princípios REST para garantir que os endpoints sejam intuitivos e representem recursos em vez de ações. Isso não apenas melhora a clareza e a usabilidade da API, mas também facilita a manutenção e a escalabilidade no futuro.

    Os princípios fundamentais do REST garantem uma comunicação eficiente entre sistemas, promovendo flexibilidade, escalabilidade e interoperabilidade. A adoção dessas diretrizes no desenvolvimento de APIs tem contribuído para o crescimento das aplicações web modernas, especialmente aquelas baseadas em nuvem.

    Referência

    FIELDING, Roy Thomas. Architectural styles and the design of network-based software architectures. 2000. Dissertação (Doutorado em Ciência da Computação) - University of California, Irvine, 2000. Disponível em: Architectural styles and the design of network-based software architectures . Acesso em: 06/12/2024.

    Feito!