Uma API minimalista em Ruby on Rails para criação rápida de serviços REST, utilizando Docker para facilitar configuração, hospedagem e isolamento do ambiente de desenvolvimento.
- Sobre o Projeto
- Tecnologias Utilizadas
- Estrutura do Projeto
- Pré-requisitos
- Montando o Ambiente
- Como Utilizar
- Endpoints Disponíveis
- Recursos Adicionais
Este repositório serve como base para APIs em Rails, integrando Ruby on Rails com SQLite e suporte ao Swagger para documentação interativa. O uso de Docker garante um ambiente de desenvolvimento consistente e fácil de replicar.
| Tecnologia | Versão |
|---|---|
| Ruby on Rails | 7.x |
| Banco de Dados | SQLite |
| Documentação | Swagger |
| Ambiente | Docker Engine |
/
├─📁 .devcontainer -> Configurações do Dev Container para VS Code
├─📁 app -> Código-fonte Rails
├─📁 config -> Configurações do Rails
├─📁 db -> Migrações e schema
├─📁 public -> Arquivos públicos (ex: robots.txt)
├─ README.md
└─ Dockerfile / docker-compose.yml- Docker Engine instalado e configurado.
- VS Code com a extensão Remote Development (ms-vscode-remote.vscode-remote-extensionpack).
- Clone o repositório:
git clone <URL do repositório>
- Abra o diretório no VS Code.
- Execute Dev Containers: Reopen in Container na paleta de comandos (F1 ou Ctrl+Shift+P) para iniciar o ambiente isolado conforme definido em
.devcontainer/devcontainer.json.
Para iniciar o servidor Rails:
rails sO servidor estará disponível em http://localhost:3000.
Após instalar o Active Storage e executar as migrações:
rails active_storage:install --Já instalado e migrado...
rails db:migrateVocê pode realizar um upload de arquivo via API:
curl -X POST http://localhost:3000/api/posts \
-F "post[title]=Hello" \
-F "post[content]=World" \
-F "file=@public/robots.txt"O arquivo
robots.txtestá disponível no template como exemplo.
| Método | Endpoint | Descrição |
|---|---|---|
| GET | /api/v1/posts |
Lista todos os posts |
| POST | /api/v1/posts |
Cria um novo post (multipart para upload de arquivo) |
| GET | /api/v1/posts/:id |
Exibe um post específico |
| PATCH | /api/v1/posts/:id |
Atualiza um post |
| DELETE | /api/v1/posts/:id |
Remove um post |
- Swagger: Durante o desenvolvimento, acesse a documentação interativa da