Como escrever uma REST API em Swift em 30 minutos: guia para iniciantes

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Como escrever uma REST API em Swift em 30 minutos: para iniciantes



Swift não é apenas uma linguagem para criar aplicativos móveis para iOS e macOS. Com o surgimento do framework Vapor, o desenvolvimento de aplicações servidoras em Swift tornou-se acessível e conveniente. Neste artigo, mostraremos como escrever uma REST API simples em Swift em apenas 30 minutos. Você aprenderá os princípios básicos de trabalho com Vapor, criará rotas, processará requisições e retornará respostas JSON.



Este guia é ideal para iniciantes que já conhecem os fundamentos do Swift, mas nunca escreveram código de servidor. Vamos analisar o processo passo a passo, com exemplos de código e explicações.



O que é uma REST API e para que serve?



REST (Representational State Transfer) é um estilo arquitetônico de interação entre componentes de uma aplicação distribuída em rede. Uma REST API permite que aplicações cliente (por exemplo, um aplicativo iOS) recebam e enviem dados para o servidor através de requisições HTTP.



Os principais métodos HTTP usados em REST:

  • GET — obter dados
  • POST — criar um novo recurso
  • PUT — atualizar um recurso existente
  • DELETE — excluir um recurso


Para nosso exemplo, criaremos uma API simples para gerenciar uma lista de tarefas (Todo List). Ela suportará todas as quatro operações básicas de CRUD (Create, Read, Update, Delete).



Instalação do Vapor e criação do projeto



Vapor é o framework web mais popular para Swift. Para começar, instale o Vapor Toolbox via Homebrew:



brew install vapor


Após a instalação, crie um novo projeto:



vapor new TodoAPIcd TodoAPI


Este comando criará a estrutura do projeto com um servidor já configurado. Abra o projeto no Xcode:



open Package.swift


No Xcode, você verá a estrutura padrão de um projeto Vapor. O código principal está na pasta Sources/App.



Criação do modelo de dados



Para trabalhar com tarefas, precisamos de um modelo. Crie o arquivo Todo.swift na pasta Sources/App/Models:



import Vaporimport Fluent

final class Todo: Model, Content { static let schema = "todos" @ID(key: .id) var id: UUID? @Field(key: "title") var title: String @Field(key: "is_completed") var isCompleted: Bool init() {} init(id: UUID? = nil, title: String, isCompleted: Bool = false) { self.id = id self.title = title self.isCompleted = isCompleted }}


Estamos usando Fluent — um ORM para Swift que trabalha com bancos de dados. No nosso exemplo, usaremos SQLite para simplificar. Observe o protocolo Content — ele permite codificar/decodificar automaticamente o modelo em JSON.



Configuração da migração e do banco de dados



Agora, crie uma migração para o nosso modelo. Adicione o arquivo CreateTodo.swift na pasta Sources/App/Migrations:



import Fluent

struct CreateTodo: Migration { func prepare(on database: Database) -> EventLoopFuture<Void> { return database.schema("todos") .id() .field("title", .string, .required) .field("is_completed", .bool, .required) .create() } func revert(on database: Database) -> EventLoopFuture<Void> { return database.schema("todos").delete() }}


No arquivo configure.swift, adicione o registro do banco de dados e da migração:



import Fluentimport FluentSQLiteDriver

public func configure(_ app: Application) throws { app.databases.use(.sqlite(.file("db.sqlite")), as: .sqlite) app.migrations.add(CreateTodo())

Blogs

Book Recommendations