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
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 bashlyCriando 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.
commandsbashly new api-cli
cd api-cliDefinindo 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.ymlname: 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
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
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
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
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
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
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 deleteIntegraçã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.
commandscurl -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.