Cómo escribir una API REST en Swift en 30 minutos: guía para principiantes

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Cómo escribir una API REST en Swift en 30 minutos: para principiantes



Swift no es solo un lenguaje para crear aplicaciones móviles para iOS y macOS. Con la llegada del framework Vapor, el desarrollo de aplicaciones de servidor en Swift se ha vuelto accesible y conveniente. En este artículo, mostraremos cómo escribir una API REST simple en Swift en solo 30 minutos. Aprenderá los principios básicos de trabajar con Vapor, creará rutas, manejará solicitudes y devolverá respuestas JSON.



Esta guía es perfecta para principiantes que ya conocen los fundamentos de Swift pero nunca han escrito código de servidor. Analizaremos el proceso paso a paso, con ejemplos de código y explicaciones.



¿Qué es una API REST y para qué sirve?



REST (Transferencia de Estado Representacional) es un estilo arquitectónico para la interacción de componentes de una aplicación distribuida en la red. Una API REST permite que las aplicaciones cliente (por ejemplo, una aplicación iOS) reciban y envíen datos al servidor a través de solicitudes HTTP.



Los métodos HTTP principales utilizados en REST son:

  • GET — obtener datos
  • POST — crear un nuevo recurso
  • PUT — actualizar un recurso existente
  • DELETE — eliminar un recurso


Para nuestro ejemplo, crearemos una API simple para gestionar una lista de tareas (Todo List). Será compatible con las cuatro operaciones CRUD básicas (Crear, Leer, Actualizar, Eliminar).



Instalación de Vapor y creación del proyecto



Vapor es el framework web más popular para Swift. Para empezar, instale Vapor Toolbox a través de Homebrew:



brew install vapor


Después de la instalación, cree un nuevo proyecto:



vapor new TodoAPIcd TodoAPI


Este comando creará la estructura del proyecto con un servidor ya configurado. Abra el proyecto en Xcode:



open Package.swift


En Xcode, verá la estructura estándar de un proyecto Vapor. El código principal se encuentra en la carpeta Sources/App.



Creación del modelo de datos



Para trabajar con tareas, necesitamos un modelo. Crearemos un archivo Todo.swift en la carpeta 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 }}


Usamos Fluent, el ORM para Swift que trabaja con bases de datos. En nuestro ejemplo, usaremos SQLite por simplicidad. Observe el protocolo Content: permite codificar/decodificar automáticamente el modelo a JSON.



Configuración de la migración y la base de datos



Ahora crearemos una migración para nuestro modelo. Agregue el archivo CreateTodo.swift en la carpeta 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() }}


En el archivo configure.swift, agregue el registro de la base de datos y la migración:



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