Com*_*rHK 48

当然,理论上.

任何可以输出纯文本的程序也可以用于包含Swift的CGI(通用网关接口).

因此,是的,您可以使用Swift进行Web编程.但是,目前,没有其他库(如PHP或EJB/JSP中的那些)可以让您轻松完成此过程.看一下Swift的一些流行的Web框架,比如Vapor.

  • 鉴于最近宣布Swift成为开源并且编译器可用于Linux,这需要一个全新的转变.您现在真正想念的是一个可靠的应用程序框架,如Django或ASP.NET.在这样的时刻出现,迅捷将是我的第一选择. (14认同)
  • "也许你可以自己开始制作这些设施." :) (13认同)
  • 有人说"快速上轨":O? (10认同)
  • 我认为这将是一个非常有趣的项目!使用中间件和所有垃圾. (2认同)

ian*_*hie 25

不确定这个主题是多么活跃,但如果有人在将来发现这一点,我想在此宣布我已经开始研究在Swift中编写FastCGI应用程序的框架.

当然,您可以使用任何Objective-C Web框架(尽管很少),您当然可以使用Swift作为脚本语言来转储由CGI反刍的HTML字符串.然而,(我将在这里得到所有的哲学)我认为如果我敢于使用这个术语,那么解决这种方法并不是非常"类似Swift".Swift的设计师经历了很多麻烦,以确保它不仅仅是"只是"Obj-C而没有(约束)C(事实上,我几乎希望他们没有说过,因为它经常被错误引用).Swift也比Obj-C更接近功能族(同时仍然保留了坚实的面向对象并且管理着添加Python特有的脚本性).这开辟了我认为需要探索的全新设计选择世界.也,

所有这些都说,我自己创造了一个模块化的"微框架",可以让你在Swift中以非常高的水平编写Web应用程序.在撰写本文时,我将其归类为概念的功能性证明,但它仍然不像我想的那样抽象,并且缺少实际使用所必需的一些关键特性.贡献当然是受欢迎的.希望有人觉得这很有帮助.https://github.com/ianthetechie/SwiftCGI


小智 24

Swift作为一种Web编程语言非常完美.您可以像脚本一样进行python(用于快速开发或简单任务),然后使用XCode(为了速度)编译相同的代码:

将以下脚本复制到Mac上的/ Library/WebServer/CGI-Executables/TestCGI(安装了Xcode 6.x的OSX Mavericks或Yosemite).使其可执行chmod +x TestCGI.随着httpd开始通话http://localhost/cgi-bin/TestCGI.您将获得呼叫参数回显...

#!/usr/bin/env xcrun swift

import Foundation

print("Content-Type: text/html")
print("Content:")
print("")
print("1. Process.argument(s):<br />")
for s in Process.arguments {
    print(s + "<br />")
}
print("<br />")

let env: Dictionary = NSProcessInfo().environment

if let requestMethod = env["REQUEST_METHOD"] {
    print("2. Request method is: \(requestMethod)<br /><br />")
}

print("3. Number of environment variables: \(env.count)<br /><br />")

print("4. List environment:<br />")
for key in env.keys {
    print("\(key) == \(env[key]!)<br />")
}
Run Code Online (Sandbox Code Playgroud)

Apple现在(2015年3月12日)开源基金会库(https://github.com/apple/swift-corelibs-foundation)以允许在Linux服务器上进行编译.