Lição: 136: Swift do Lado do Servidor com Vapor
Nesta aula, vamos explorar como construir uma aplicação simples do lado do servidor usando o framework Vapor, um dos frameworks web mais populares para Swift. O Vapor foi projetado para ser fácil de usar e se integra perfeitamente com a linguagem de programação Swift para construir APIs robustas e aplicações web.
Começando
Primeiro, assegure-se de ter os seguintes pré-requisitos:
- Swift instalado na sua máquina (Swift 5.3 ou posterior)
- Vapor instalado na sua máquina. Você pode instalar o Vapor através do Homebrew:
brew tap vapor/homebrew-bandwagon
brew install vapor
Você pode verificar a instalação executando:
vapor --version
Agora que temos tudo instalado, vamos criar um novo projeto Vapor.
Criando um Novo Projeto
- Abra seu terminal e crie um novo projeto Vapor:
vapor new MeuVaporApp
- Navegue até o diretório do projeto:
cd MeuVaporApp
- Abra o projeto no seu editor de código favorito (ex: Xcode ou Visual Studio Code).
Configurando a Aplicação
Agora que nosso projeto Vapor foi criado, vamos configurar uma rota simples.
Modificando as Rotas
Abra o arquivo Routes.swift
localizado no diretório Sources/App/
. Você encontrará uma função chamada routes(_:)
. É aqui que vamos definir nossas rotas.
Substitua o conteúdo existente pelo seguinte código para criar uma rota simples "Olá, mundo!":
import Vapor
func routes(_ app: Application) throws {
app.get("hello") { req in
return "Olá, mundo!"
}
}
Executando a Aplicação
Para executar sua aplicação Vapor, você pode usar o seguinte comando:
vapor run
Por padrão, sua aplicação será iniciada em http://localhost:8080
. Abra seu navegador e vá para http://localhost:8080/hello
. Você deverá ver "Olá, mundo!" exibido no seu navegador.
Criando um Modelo Básico
Vamos criar um modelo básico para representar um Usuário
. Vamos definir isso em um novo arquivo.
- Crie um novo arquivo chamado
User.swift
no diretórioSources/App/Models/
. - Adicione o seguinte código para definir o modelo
Usuário
:
import Vapor
struct User: Content {
var id: UUID?
var name: String
var email: String
}
Configurando as Rotas CRUD
Agora, vamos estender nossa aplicação para manipular operações CRUD básicas para o modelo Usuário
. Atualize seu arquivo routes.swift
com o seguinte:
import Vapor
var users: [User] = []
func routes(_ app: Application) throws {
app.post("users") { req -> User in
let user = try req.content.decode(User.self)
users.append(user)
return user
}
app.get("users") { req -> [User] in
return users
}
app.get("users", ":id") { req -> User? in
guard let userID = req.parameters.get("id"), let user = users.first(where: { $0.id?.uuidString == userID }) else {
return nil
}
return user
}
app.delete("users", ":id") { req -> HTTPStatus in
guard let userID = req.parameters.get("id") else {
throw Abort(.badRequest)
}
users.removeAll { $0.id?.uuidString == userID }
return .noContent
}
}
Testando a API
Com nossas rotas CRUD configuradas, vamos testá-las usando uma ferramenta como Postman ou Curl.
- Criar um Usuário:
curl -X POST http://localhost:8080/users -H "Content-Type: application/json" -d '{"id": null, "name": "John Doe", "email": "john@example.com"}'
- Obter Todos os Usuários:
curl http://localhost:8080/users
- Obter um Usuário pelo ID:
Assumindo que o ID do usuário criado na etapa anterior é some-uuid
, execute:
curl http://localhost:8080/users/some-uuid
- Deletar um Usuário:
curl -X DELETE http://localhost:8080/users/some-uuid
Conclusão
Nesta aula, exploramos como configurar uma aplicação básica do lado do servidor usando o framework Vapor em Swift. Criamos uma rota simples "Olá, mundo!" e implementamos operações CRUD para o modelo Usuário
. O Vapor oferece uma maneira clara e eficiente de construir aplicações web e APIs em Swift, tornando-se uma ferramenta poderosa para desenvolvedores Swift.
Sinta-se à vontade para expandir esta aplicação adicionando mais funcionalidades, como integração com banco de dados usando Fluent, ou adicionando middleware para autenticação. Boas codificações!