3

Xcode 11.2 と Swift 5.1 を使用して Vapor 3.1.10 に基づいてバックエンドを作成しています。データベースは PostgreSQL 12 です。POST および GET 要求なしでデータベース (CRUD) と対話する方法について質問があります。すべてのチュートリアルは、HTTPS を介したリクエストに基づいてのみ CRUD する方法を示しています。しかし、アプリがネットワークと対話せずにデータベースに何かを保存する必要がある場合はどうすればよいでしょうか? 私のコードを見てください:

import Vapor
import FluentPostgreSQL

final class Device: PostgreSQLModel {        
    var id: Int?
    var isWorking: Bool
    var serial: Int

    init(isWorking: Bool, serial: Int) {
        self.isWorking = isWorking
        self.serial = serial
    }    
}
extension Device: Content {}
extension Device: Migration {}
extension Device: Parameter {}

書き込みまたは読み取りの古典的な方法は次のとおりです。

import Vapor

final class DeviceController {        
    func readAll(_ req: Request) throws -> Future<[Device]> {
        return Device.query(on: req).all()
    }

    func create(_ req: Request) throws -> Future<Device> {
        return try req.content.decode(Device.self).flatMap { device in
            return device.save(on: req)
        }
    }
}

reqローカルで作成できる別のバックグラウンド、安全なスレッドに置き換える方法は?

例えば:

let device = Device(isWorking: true, serial: 54321)
device.save(on: <#T##DatabaseConnectable#>)

交換方法は<#T##DatabaseConnectable#>

どんな助けやアドバイスにも感謝します。

4

2 に答える 2