当前位置: 首页 > article >正文

Swift Vapor 教程(查询数据、插入数据)

上一篇简单写了 怎么创建 Swift Vapor 项目以及在开发过程中使用到的软件。
这一篇写一个怎么在创建的项目中创建一个简单的查询数据和插入数据。
注:数据库配置比较重要

先将本地的Docker启动起来,用Docker管理数据库

  1. 将项目自己创建的Todo相关的都删掉,使用自己创建的

  2. 创建自定义 Model (与数据库字段一一对应)

import Fluent
import Vapor
import Security

final class Song: Model, Content {
    
    static let schema: String = "songs"
    
    init() {
        
    }
    
    @ID(key: .id)
    var id:UUID?
    
    @Field(key: "title")
    var title: String

    init(id: UUID? = nil, title: String) {
        self.id = id
        self.title = title
    }
    
}
  1. 在 Migrations中创建与数据库交互代码(映射)
import Fluent

struct CreateSongs: Migration {
    
    // 创建数据库
    func prepare(on database: FluentKit.Database) -> NIOCore.EventLoopFuture<Void> {
        return database.schema("songs")
            .id()
            .field("title",.string,.required)
            .create()
    }
    
    func revert(on database: FluentKit.Database) -> NIOCore.EventLoopFuture<Void> {
        return database.schema("songs").delete()
    }
    
}
  1. 需要在 configure 文件中进行配置
// 添加配置代码
app.migrations.add(CreateSongs())
try app.autoMigrate().wait()
  1. 在 routes 文件中进行路由配置
import Fluent
import Vapor

func routes(_ app: Application) throws {
    app.get { req async in
        "It works!"
    }


    // 注册路由
    try app.register(collection: SongController())
    
}
  1. 在 Controllers中创建自己的代码
import Fluent
import Vapor

struct SongController: RouteCollection {
    
    func boot(routes: Vapor.RoutesBuilder) throws {
        let songs = routes.grouped("songs")
        songs.get(use: index)
        
        songs.post(use: create)
    }
    
    
    //  GET Request /songs route
    func index(req: Request) throws -> EventLoopFuture<[Song]> {
        return Song.query(on: req.db).all()
    }
    
    //  POST Request /songs create 增
    func create(req: Request) throws -> EventLoopFuture<HTTPStatus> {
        let song = try req.content.decode(Song.self)
        return song.save(on: req.db).transform(to: .ok)
    }
    
}

自此简单代码配置已经完成。

自此运行项目可能会出现报错现象,进入项目目录命令行工具中输入

docker-compose up db

docker创建了数据库需要启动(一种是手动启动、一种是使用命令启动)

如果顺利的话,项目就可以正常运行。
接下来使用 Postman进行调试

添加歌曲名称
上图为添加歌曲名称

获取歌曲列表
上图为获取歌曲列表

Docker中创建的数据库
上图Docker中数据库运行状态

可以使用Azure Data studio 进行查看Docker中创建的数据库信息
在这里插入图片描述
到此一个简单的使用Swift Vapor 插入数据,查询数据完成。


http://www.kler.cn/a/228591.html

相关文章:

  • 【知识分享】PCIe5.0 TxRx 电气设计参数汇总
  • (一)相机标定——四大坐标系的介绍、对应转换、畸变原理以及OpenCV完整代码实战(C++版)
  • mysql之基本常用的语法
  • 动态规划(多状态)
  • 微服务与docker
  • postman请求参数化
  • LabVIEW智能温度直流模件自动测试系统
  • Postgresql PostGIS扩展
  • Kylin系统下Qt的各种中文问题解决思路
  • 【Qt基本功修炼】Qt线程的两种运行模式
  • openssl3.2 - 官方demo学习 - pkcs12 - pkread.c
  • SD卡数据恢复:快速恢复丢失的照片和视频
  • Linux环境下配置mysql主从复制
  • ChatGPT之搭建API代理服务
  • C/C++实现无序入参的命令解析工具
  • 跟我学C++中级篇——STL中decay的应用
  • 计算机网络原理基础
  • PMSA Memory Model--1 Overview
  • 数据湖Paimon入门指南
  • 【数据分享】1929-2023年全球站点的逐日平均能见度(Shp\Excel\免费获取)
  • 贪心算法篇2
  • Selenium——利用input标签上传文件
  • 机器学习数学基础
  • 【安防】三个问题:IPC和ITC主要的差异点和相同点 、影响图像成像效果的因素有哪些、摩尔纹如何产生的和消除方法
  • SpringBoot使用Rabbit详解含完整代码
  • 家政小程序系统开发:从构思到实现