问题标签 [server-side-swift]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
338 浏览

swift - 从 Vapor 3 中的作业访问服务

我对 Vapor 和服务器端 swift 非常陌生,具有 iOS 开发背景(开发应用程序 6 年)。我正在尝试为设备管理构建一个简单的 API,其中包括一个“作业”(您想调用它的计时器),它每隔一小时左右检查一次设备最后一次“签入”。

为此,我设置了 Jobs 包,但是我正在努力弄清楚如何访问服务 ( Ferno ) 以访问我的 Firebase 实时数据库以获取有关设备上次登录时间的信息。似乎根据文档您需要一个实现者Container来创建/访问 aService但似乎没有任何类型的全局容器我可以使用。

我应该尝试创建自己的Request只是为了访问Ferno服务吗?或者有没有办法可以访问全局app

以下是我到目前为止所拥有的,但我所做的似乎非常错误!当然必须有一种方法来实现这一目标?

0 投票
0 回答
34 浏览

vapor - Vapor 应用程序在启动时崩溃。VaporS3Signer.Provider.S3ProviderError.config("没有 vapor-S3Signer.json 配置文件")

对于服务器端 swift,我使用的是蒸汽。

main.swift 上的错误: 线程 1:

致命错误:在顶层引发错误:VaporS3Signer.Provider.S3ProviderError.config("no vapor-S3Signer.json config file")

日志:

致命错误:在顶层引发错误:VaporS3Signer.Provider.S3ProviderError.config("no vapor-S3Signer.json config file"): file /BuildRoot/Library/Caches/com.apple.xbs/Sources/swiftlang_Fall2018/swiftlang_Fall2018-1000.11 .42/src/swift/stdlib/public/core/ErrorType.swift,第 191 行

我的代码(main.swift):

当我在 Xcode10.1 中运行应用程序时,应用程序启动时出现错误。

0 投票
1 回答
503 浏览

vapor - How to read a parameter in a Vapor middleware without consuming it

I am brand new to the Vapor framework, and am trying to protect multiple routes. Basically, I want to make sure that all routes under /campaigns/:id can only be accessed if the user actually has access to that particular campaign with that ID. So that I can't just enter any ID into the url and access any campaign.

Now, instead of adding logic for this to every single route (already 6 so far), I figured I'd use a middleware for this. This is what I came up with so far, with the help of some friendly folk over at the Vapor Discord:

The problem here is that the middleware is "eating up" the campaign parameter by doing request.parameters.next(Campaign.self). So in getOneHandler, where it also tries to access req.parameters.next(Campaign.self), it fails with error "Insufficient parameters". Which makes sense, since .next actually removes that param from the internal array of parameters.

Now, how can I write a middleware, that uses the parameter, without eating it up? Do I need to use the raw values and query the Campaign model myself? Or can I somehow reset the parameters after using .next? Or is there another better way to deal with model authorization in Vapor 3?

0 投票
1 回答
199 浏览

swift - 服务器端 Swift Vapor - 模型继承

是否可以对模型进行子类化并继承超类的属性,所以最后我有了模型:

类用户
类学生:用户
类教师:用户



为了创建这个:https ://ryanbigg.com/2008/09/multiple-user-access-levels

0 投票
1 回答
58 浏览

mysql - 如何在kitura应用程序中调用mysql存储过程

我需要在 kitura 应用程序中调用 MySQL 存储过程并将其用于查询结果。我怎样才能做到这一点

0 投票
2 回答
2982 浏览

vapor - Vapor 3 - 发送一个 HTTPRequest

如何在 Vapor 3 中使用HTTPRequeststruct 发送 API 请求?

我尝试了以下代码的变体..

编译错误Cannot convert value of type '(HTTPClient) -> EventLoopFuture<HTTPResponse>' to expected argument type '(HTTPClient) -> _'

我已经尝试过其他有效的代码变体。

Vapor 3 Beta 示例端点请求

我读了又读:

0 投票
2 回答
155 浏览

perfect - PerfectSwift:快速包更新无休止地运行

我确实有一个较旧的 Perfect Swift 项目,其中我的 package.swift 看起来如下:

当我运行时,swift package build我得到以下输出,然后机器挂了几个小时:

我该怎么做才能再次运行?swift --version得到

0 投票
1 回答
129 浏览

swift - 为什么 Xcode 一直用 '_' 代替泛型

我正在使用 Swift 5 和 Vapor 3 制作服务器。设置路由时,我想从我的控制器调用一个函数,该函数返回一个像这样的可选:

但后来我得到这个错误

在使用 Vapor 时,我看到很多情况,其中 Xcode 只是放弃了自动完成功能,并且所有内容都只是输入为_. 主要在用作回调的闭包内部。这很烦人,坦率地说,我不确定它是由 Vapor、Swift 还是 Xcode 引起的。这是一个巨大的 PITA,但一旦我编译,一切都会得到解决,类型会被整理出来。但是在这种情况下,它只是不起作用。

所以问题是:为什么 Xcode 会说预期的类型是(Request) throws -> _当实际定义Request.put(_:use:)需要 a时(Request) throws -> T,这如何在TbeFuture<Person>和之间产生差异Future<Person?>

0 投票
2 回答
1411 浏览

swift - 路由时如何在请求中传递参数(使用 Vapor 的服务器端 Swift)

我正在使用 Swift 中的 Vapor 框架编写 Web 服务。

在我的应用程序中,我有用户模型。以下是我为所有用户路由获取请求的方式。

在本地运行服务器后,为了获取用户,我可以发出如下请求localhost:8080/users

现在,我想在请求中添加参数以获取超过给定年龄的用户。请求看起来像localhost:8080/users?above_age=25

如何使用 Vapor 框架在请求中添加参数?我尝试了可用的文档,但我想不通。

由于我现在开始使用 Vapor 的 Server Side Swift,因此任何对使用 Vapor 3 的资源的引用也将有助于解决我可能面临的其他问题。谢谢!

0 投票
1 回答
173 浏览

swift - 无法使用 Vapor-Fluent 在 Swift 中跨 Web 服务实例持久化数据

我正在使用 Vapor 框架在 Swift 中编写 Web 服务。

我使用 FluentSQLite 来保存数据。我有一个符合 SQLiteModel 和迁移的用户模型。我添加了通过 post 方法创建新用户的路线,并通过如下所示的 get 方法返回用户列表。

在此处输入图像描述

当我第一次点击 get API 时,它返回一个空数组。在我发布一些用户后,我可以得到他们。但是当我停止服务并再次运行时,我无法获取之前保存的用户。

由于我是 Vapor 的新手,我无法弄清楚我在这里缺少什么,所有的在线搜索和文档都没有帮助。最初我在事务中没有保存或查询,在看到文档后我也尝试过,但同样的问题。