我可以在 API 的后端使用 Swift 吗?

Can I use Swift on the back end of an API?

我想创建一个国际象棋引擎。我最熟悉Swift,超高性能对我来说并不是那么重要(否则我可能会用C++学习和编写它)。我需要我的引擎占据国际象棋位置 in an FEN formatted string, which would look something like this: rnbqkbnr/pp1ppppp/8/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R b KQkq - 1 2. It would then process the position and spit out a move in algebraic notation,例如 Nxd4

然而,这些细节并不是那么重要,因为我可以在 Swift 中对所有这些进行编程。我想知道的是如何创建一个 API 和 swift 来做到这一点。也就是说,将 url 编码的 FEN 位置传递给 API 的参数,如下所示:https://www.mywebsite.com/chessEngine?position=rnbqkbnr%2Fpp1ppppp%2F8%2F2p5%2F4P3%2F5N2%2FPPPP1PPP%2FRNBQKB1R%20b%20KQkq%20-%201%202

Swift 代码将在后端处理这个位置,响应将类似于:

{status:"success",recommendedMove:"Nxd4",moveTime:"12.34"}

甚至可以在后端进行 Swift 代码处理吗?我的 API 开发经验仅限于将参数作为 url 参数,进行 SQL 查询,然后将查询响应回显为 JSON.

另请参阅: https://chess.stackexchange.com/questions/26489/creating-chess-engine-machine-learning-vs-traditional-engine

是的,这是可能的。虽然我还没有用 Swift 构建完整的 site/API,但我知道 Vapor uses itself to host its website, and my (albeit limited) experience with it suggests that it would be a good pick. That said, you could also use Kitura or Perfect — 尝试查找它们之间的比较。

祝你好运!