草庐IT

swift - Vapor 3 路由

路由问题我正在使用最新版本的Vapor并尝试学习它。我正在尝试在Controller中创建路由。我已经在routes.swift文件中注册了Controller。我现在需要在Controller文件中正确注册路由。我已经使用RouteCollection扩展了类,并且正在为发布请求编写路由。我打算传递一个JSON对象并有一个从Content扩展的类,以便更容易地从JSON数据创建对象。post请求然后将数据提交到FoundationDB数据库。当我对它进行硬编码时,我可以读写它,但现在需要使用请求来发送数据。这就是我的。funcboot(router:Router)throws{rou

swift - 将列添加到 Vapor 中的现有表

我有一个正在处理的项目,其中包含帖子和评论。我使用外键(postId)将评论链接到帖子。但是,直到我第一次使用Comment类构建项目之后,这个外键才添加到我的Comment类中。将postId字段添加到评论类后,我尝试运行项目并创建评论。该项目构建并运行良好,但是当我尝试创建评论时,出现错误:tableCommenthasnocolumnnamedpostId这是Vapor中的某种迁移问题吗? 最佳答案 您仍然需要将您的数据库与vapor中的更改同步。如您所料,您可以通过配置迁移来完成此操作。将此添加到您的configure.sw

swift - 使用不同的数据库提供商测试 Vapor 3

是否可以将内存中的FluentSQLite提供程序用于测试目的,将FluentPostgreSQL用于应用模型? 最佳答案 这取决于....简而言之,简单的应用程序是的,你可以。您基本上需要使您的模型通用,然后从您的配置一路向下设置通用模型。查看基准模型的设置方式here.实际上-不,你不能。一旦您想做任何非标准的事情(TEXT列类型)等,您需要使您的模型特定于数据库类型。实现它的方法是使用存储库模式并从应用程序逻辑中完全抽象出您的数据库。有关详细信息,请参阅Vapor风格指南。 关于s

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

我是Vapor和服务器端swift的新手,具有iOS开发背景(6年开发应用程序)。我正在尝试为设备管理构建一个简单的API,其中包括一个“作业”(定时器,无论你想怎么调用它),它每隔一小时左右检查一次设备最后一次“checkin”。为此,我设置了Jobs包,但我正在努力弄清楚如何访问服务(Ferno)以访问我的Firebase实时数据库以获取有关设备上次登录时间的信息。它似乎根据文档,您需要Container的实现者来创建/访问Service但似乎没有任何类型的全局容器我可以使用。我应该尝试创建自己的Request只是为了访问Ferno服务吗?或者有什么方法可以访问全局app?以下是我

swift - 使用 vapor 导入多个私有(private)存储库时出错

我在导入多个私有(private)存储库时遇到问题,我似乎可以使用1.所以我想知道是否有人可以告诉我我做错了什么。我的项目结构是这样的:在Package.swift所在的项目的根目录中:--.ssh--config--model--model.pub--service--service.keypackage.swift的内容:importPackageDescriptionletpackage=Package(name:"Server",products:[.library(name:"Seerver",targets:["App"]),],dependencies:[//?Aserv

swift - Vapor:使用参数在路由器 POST 调用中调用 REST API

所以我正在尝试在我的Vapor端点之一中调用第二个端点。我有一个端点,它只是一个get并且运行良好:router.get("status"){req->Futureinletclient=tryreq.make(Client.self)letresponse=client.get("https://url.com/endpoint/")returnresponse.flatMap(to:ConnectionResponse.self,{responseinreturntryresponse.content.decode(ConnectionResponse.self)})}这会正确返回

mysql - 将 FluentMySQL 与 vapor 3 结合使用

几天来,我一直在尝试将fluent-mysql依赖项添加到我的vapor项目中,以便从项目中查询我单独的mysql数据库。但是我似乎总是会遇到某种错误,例如当我尝试vaporupdate它永远不会完成。(过去我已经离开了几个小时),我也试过swiftpackageupdate但那有同样的错误。我现在处于vaporupdate的地步有效,但是我仍然遇到两个错误'mysql/udf_registration_types.h'filenotfoundwithinclude;use"quotes"instead和CouldnotbuildObjective-Cmodule'CMySQL'我从v

swift - 在 Vapor 中获取 URI 的片段

对于我的Vapor应用程序,我需要读取请求的URI片段。letdrop=Droplet()drop.get("fragment"){requestinprint("URI:\(request.uri)")print("Fragment:\(request.uri.fragment)")return""}问题是:当我请求http://myserver/fragment#hello时,request.uri.fragment为nil。这是在控制台中打印的:URI:http://localhost:8080/fragmentFragment:nil我错过了什么吗?Vapordocumenta

json - 解码 Vapor 中的对象数组

我如何解码以下json数组(它是http请求的一部分)[{"id":0,"name":"darthmaul"},{"id":1,"name":"darthsidious"}]在swiftvapor3中有解码功能?Vapor代码:structUser:Content{varid:Intvarname:String}router.put("user"){request->Futureinreturntryrequest.content.decode(User.self).map({(user)->(HTTPStatus)in//process...return.ok})}

swift - 列出 Vapor 中的所有路由

我想检查Vapor应用正在服务的所有路线的列表。是否有脚本或运行时命令会为我生成列表?我正在寻找类似于RubyonRails中的rakeroutes的东西 最佳答案 执行vaporbuild后从命令行运行vaporrunroutes 关于swift-列出Vapor中的所有路由,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/53333076/