Por que Swift não é apenas desenvolvimento mobile?
Quando se ouve "Swift", a primeira associação são aplicativos iOS. Mas nos últimos anos, Swift tem avançado com confiança para o lado do servidor. E isso não é apenas hype: a Apple está desenvolvendo ativamente o ecossistema, e a comunidade está criando frameworks poderosos. Se você já programa em Swift para iOS e quer expandir seus horizontes — microsserviços em Swift serão seu próximo passo lógico.
Por que microsserviços? Porque é o padrão moderno de construção de backend: serviços pequenos e independentes que são fáceis de escalar e atualizar. E Swift, com seu desempenho, segurança de tipos e sintaxe concisa, é perfeito para isso. Neste artigo, vamos abordar por onde começar a criar microsserviços em Swift, escrever código real e executar nosso primeiro serviço.
O que você precisa saber antes de começar?
Para uma leitura confortável, você precisará de:
- Conhecimento básico de Swift (variáveis, funções, estruturas)
- Compreensão de HTTP e REST (pelo menos no nível "há uma requisição — há uma resposta")
brewinstalado (para macOS) ou Docker (para Linux)
Se faltar algo — não se preocupe, vamos entender ao longo do caminho.
Escolhendo a ferramenta: Vapor — o rei do Swift server-side
No mercado de frameworks server-side para Swift, existem dois principais players: Vapor e Kitura (da IBM). Mas a Kitura, infelizmente, está quase congelada. Já o Vapor está em desenvolvimento ativo, tem uma enorme comunidade e documentação. Portanto, nossa escolha é Vapor.
O Vapor oferece tudo pronto: roteamento, middleware, trabalho com bancos de dados, WebSocket, assincronicidade via async/await. Ideal para construir uma arquitetura de microsserviços em Swift.
Instalação do Vapor Toolbox
Abra o terminal e execute:
brew install vaporApós a instalação, verifique:
vapor --helpSe você vir a lista de comandos — está tudo certo, pode criar o primeiro projeto.
Criando o primeiro microsserviço: Hello, World!
Nosso primeiro microsserviço será simples: ele receberá uma requisição GET e retornará um JSON. Mas faremos isso corretamente — com uma arquitetura pronta para expansão.
Passo 1. Criando o projeto
vapor new HelloMicroservice --template=authcd HelloMicroserviceA flag --template=auth adicionará uma estrutura básica com autenticação. Para um microsserviço, esta é uma boa prática — já incorporar segurança desde o início.
Passo 2. Estrutura do projeto
Após a criação, você verá a seguinte estrutura:
HelloMicroservice/├── Sources/│ ├── App/│ │ ├── Controllers/│ │ ├── Models/│ │ └── configure.swift│ └── Run/│ └── main.swift├── Tests/├── Dockerfile└── Package.swiftObserve o Dockerfile — este já é um template pronto para conteinerização. Microsserviços sem Docker são como pizza sem queijo.
Passo 3. Escrevendo o primeiro endpoint
Vamos abrir Sources/App/Controllers/UserController.swift (se não existir, vamos criá-lo). Adicione um método simples:
import Vapor
struct HealthController: RouteCollection { func boot(routes: RoutesBuilder) throws { let health = routes.grouped("api", "health") health.get(use: checkHealth) } @Sendable func checkHealth(req: Request) async throws -> HTTPStatus { return .ok }}Este é o clássico health-check — a base de qualquer microsserviço. Agora vamos registrá-lo no configure.swift:
// no final da função configuretry app.register(collection: HealthController())Passo 4. Executando e testando
vapor runAbra o navegador ou terminal:
curl http://localhost:8080/api/health# Resposta: 200 OKParabéns! Você a