SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
25.11.2024

Aula 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

  1. Abra seu terminal e crie um novo projeto Vapor:
vapor new MeuVaporApp
  1. Navegue até o diretório do projeto:
cd MeuVaporApp
  1. 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.

  1. Crie um novo arquivo chamado User.swift no diretório Sources/App/Models/.
  2. 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.

  1. 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"}'
  1. Obter Todos os Usuários:
curl http://localhost:8080/users
  1. 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
  1. 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!

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!