Introdução

Neste tutorial, vamos explorar o desenvolvimento de uma API RESTful utilizando Shell Script, uma abordagem muitas vezes ignorada no mundo do desenvolvimento de software, mas que oferece uma forma eficiente de automação e interação com serviços web. Usaremos o framework bashly para facilitar a criação de uma CLI (Command Line Interface) que será a nossa API, além de utilizarmos o curl para realizar requisições HTTP para interação com serviços externos. Este guia é perfeito para desenvolvedores que desejam aprender a usar Shell Script de forma mais avançada e automatizar tarefas rotineiras de maneira eficaz.

Etapas

  1. Configuração do Ambiente

    Certifique-se de que você tem o bashly e curl instalados em seu sistema. O bashly é um framework para construir CLIs com facilidade, enquanto o curl é uma ferramenta para realizar requisições HTTP. Você pode verificar se o curl está instalado executando o comando `curl –version`. Para instalar o bashly, você pode usar o comando `gem install bashly`, pois ele está disponível como uma gema Ruby.

    commands
    # Verificando versões instaladas
    curl --version
    # Instalando bashly
    gem install bashly

  2. Criando um Novo Projeto com Bashly

    Usando o bashly, você pode rapidamente estruturar um novo projeto. Execute o comando `bashly new api-cli` para criar uma nova aplicação de CLI. Mude para o diretório criado com `cd api-cli` para começar a trabalhar em seu projeto.

    commands
    bashly new api-cli
    cd api-cli

  3. Definindo Comandos da API

    Abra o arquivo `bashly.yml` e defina os comandos que sua API REST irá oferecer. Vamos definir um comando `create` para criar um novo item, um `read` para listar os itens, um `update` para atualizar um item existente e um `delete` para remover um item.

    bashly.yml
    name: api-cli
    version: 1.0
    command:
      create:
        description: Cria um novo item
      read:
        description: Lista todos os itens
      update:
        description: Atualiza um item
      delete:
        description: Remove um item

  4. Implementando a Lógica dos Comandos

    Dentro do diretório `commands`, você verá arquivos para cada comando definido. Abra o arquivo `create.sh` e adicione a lógica necessária para criar um item, por exemplo, gravando os dados em um arquivo JSON. Utilize o `curl` para enviar dados para um serviço web, se necessário.

    create.sh
    #!/bin/bash
    
    # Cria um novo item
    read -p 'Nome do item: ' nome
    read -p 'Descrição do item: ' descricao
    echo "{\"nome\": \"$nome\", \"descricao\": \"$descricao\"}" >> items.json

  5. Testando o Comando de Criação

    Agora que implementamos o comando de criação, vamos testá-lo. Execute `./api-cli create` e siga as instruções para adicionar um novo item. Verifique se o arquivo `items.json` foi criado e contém os dados que você inseriu.

    commands
    ./api-cli create

  6. Implementando o Comando de Leitura

    Abra o arquivo `read.sh` e adicione a lógica para ler e listar os itens contidos em `items.json`. Você pode usar o comando `cat` para mostrar o conteúdo do arquivo.

    read.sh
    #!/bin/bash
    
    # Lista todos os itens
    echo 'Itens cadastrados:'
    cat items.json

  7. Testando o Comando de Leitura

    Teste a funcionalidade de leitura executando `./api-cli read`. Verifique se os itens que você cadastrou aparecem no console.

    commands
    ./api-cli read

  8. Implementando os Comandos de Atualização e Exclusão

    Para os comandos `update` e `delete`, você precisará implementar a lógica apropriada. Para atualização, faça uma leitura do arquivo, modifique os dados e grave novamente. Para exclusão, remova o item com base em uma condição.

    update.sh
    #!/bin/bash
    
    # Atualiza um item
    read -p 'ID do item para atualizar: ' id
    # Lógica para atualizar o item no items.json
    

    delete.sh
    #!/bin/bash
    
    # Remove um item
    read -p 'ID do item para remover: ' id
    # Lógica para remover o item no items.json
    

  9. Testando Atualização e Exclusão

    Após implementar os comandos de atualização e exclusão, execute-os e teste suas funcionalidades. Verifique se a leitura do arquivo reflete as mudanças feitas.

    commands
    ./api-cli update
    ./api-cli delete

  10. Integração com Serviços Web usando cURL

    Você pode integrar sua API com serviços externos utilizando o curl. Por exemplo, enviar dados para uma API REST pública. Abaixo está um exemplo de como utilizar o curl para fazer um POST.

    commands
    curl -X POST -H "Content-Type: application/json" -d '{"nome":"Item de Exemplo"}' http://api.exemplo.com/itens

Conclusão

Ao final deste tutorial, você aprendeu como desenvolver uma API REST básica utilizando Shell Script, o framework bashly e o curl para realizar automação e interações com serviços web. Essa abordagem pode ser uma solução eficiente para tarefas que não exigem um framework mais complexo. Com esse conhecimento, você pode expandir suas habilidades e desenvolver scripts que automatizam ainda mais suas operações diárias e facilitam o trabalho com APIs.

Hashtags

#ShellScript #Bashly #API #cURL #Automação #DesenvolvimentoDeSoftware