我是Vapor的新手,正在尝试获取远程IP。有没有人成功做到这一点?我检查了请求header,但没有显示与ip相关的任何内容。我想不通,有什么办法可以解决吗? 最佳答案 您应该能够从请求对象中获取它。print(req.peerAddress) 关于swift-如何通过Vapor获取远程ip,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/43036233/
我正在使用vapor的客户端来获取get请求。funcsendGetRequest(req:Request)throws->Future{letclient=tryreq.make(FoundationClient.self)returnclient.get("http://example.vapor.codes/json",headers:["Accept-Language":"ar"]).map(to:Response.self,{clientResponseinletresponse=req.makeResponse()response.http.status=clientRes
在Vapor1.5中,我曾经将Dictionary转换为JSON,如下所示。我应该如何在Vapor3.1中执行此操作?在文档中它说我需要创建结构类型并使其符合可编码协议(protocol)。是否有另一种方法可以在不创建新结构的情况下转换现有字典?funcmakeCustomJSON(clientData:DataFromClientChargeWithCard,paymentID:String,customer:String)throws->JSON{vardictionaryOfStrings=[String:String]()dictionaryOfStrings["Booking
是否可以对模型进行子类化并继承父类(superclass)的属性所以最后我有了模型:类用户-类(class)学生:用户-类主任:用户为了创建这个:https://ryanbigg.com/2008/09/multiple-user-access-levels 最佳答案 阅读截至2019年3月1日的Discord聊天后,这里有一个流利的未解决问题:https://github.com/vapor/fluent-kit/issues/8. 关于swift-服务器端SwiftVapor-模型继
我有一个中间件,如果在Redis中找不到token,它会获取一个token。structTokenMiddleware:Middleware,TokenAccessor{funcrespond(torequest:Request,chainingTonext:Responder)throws->Future{guardlet_=request.http.headers.firstValue(name:HTTPHeaderName("Client-ID"))else{throwAbort(.badRequest,reason:"missing'Client-ID'inheader")}g
上下文:最近,我决定从事Swift服务器端开发,因为我认为Vapor框架非常酷。我在试验时遇到了一些困难,想获得一些有关使用leaf和vapor进行模板化的建议。在渲染View方面,我已经多次查看文档。使用变量呈现模板化View需要叶模板的名称和包含变量的ResponseRepresentable节点对象。尝试使用模板和框架本身来设计场景(因为这是我学得最好的方式),我尝试模拟博客格式。这是我的类(class)/获取请求://MARK:BlogPostObjectfinalclassBlogPost:NodeRepresentable{varpostId:IntvarpostTitle
使用swiftvapor和elasticsearch,得到如下响应:{“_碎片”:{“失败”:0,“成功”:5,“总计”:5},“命中”:{“命中”:[{"_id":"3","_index":"items_v1",“_分数”:1.2029922,“_资源”:{“属性1”:“测试”,"property2":"另一个测试",...},“_type”:“项目”},...在“hits”->“hits”->“_source”中,我得到了模型“Item”的所有属性。我如何从这个json响应创建一个项目数组“[Item]”? 最佳答案 小改进,使
我正在创建一个Vapor服务器,但它正在处理URL中的GET请求,而没有按下回车键。请参见下面的示例:假设我有代码get('hello'),每当输入它时,它都会以json格式返回helloworld。如果我要运行Vapor服务器,输入localhost:8080/hello,然后在我的浏览器中按回车键,它将返回{"hello":"world"}code>,按预期工作。在控制台上,它将按预期打印GET/hello。但是,如果我要从URL中清除hello,我将localhost:8080/输出为空,将GET/打印到控制台。如果我随后将h附加到此:localhost:8080/h,则URL将
路由问题我正在使用最新版本的Vapor并尝试学习它。我正在尝试在Controller中创建路由。我已经在routes.swift文件中注册了Controller。我现在需要在Controller文件中正确注册路由。我已经使用RouteCollection扩展了类,并且正在为发布请求编写路由。我打算传递一个JSON对象并有一个从Content扩展的类,以便更容易地从JSON数据创建对象。post请求然后将数据提交到FoundationDB数据库。当我对它进行硬编码时,我可以读写它,但现在需要使用请求来发送数据。这就是我的。funcboot(router:Router)throws{rou
我有一个正在处理的项目,其中包含帖子和评论。我使用外键(postId)将评论链接到帖子。但是,直到我第一次使用Comment类构建项目之后,这个外键才添加到我的Comment类中。将postId字段添加到评论类后,我尝试运行项目并创建评论。该项目构建并运行良好,但是当我尝试创建评论时,出现错误:tableCommenthasnocolumnnamedpostId这是Vapor中的某种迁移问题吗? 最佳答案 您仍然需要将您的数据库与vapor中的更改同步。如您所料,您可以通过配置迁移来完成此操作。将此添加到您的configure.sw