Могу ли я использовать Swift на стороне API? - PullRequest
0 голосов
/ 07 октября 2019

Я хочу создать шахматный движок. Я больше всего знаком со Swift, и сверхвысокая производительность не так уж важна для меня (иначе я бы, вероятно, выучил и написал это на C ++). Мне нужно, чтобы мой двигатель занял шахматную позицию в строке в формате FEN, которая выглядела бы примерно так: rnbqkbnr/pp1ppppp/8/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R b KQkq - 1 2. Затем он обработал бы позицию и выплюнул ход в алгебраической записи , например Nxd4.

Однако эти особенности не так уж важны, так как я могу запрограммировать все этов Свифте. Что мне интересно, так это то, как можно создать API с помощью swift для этого. Таким образом, позиция FEN, закодированная в URL, передается параметру в 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

1 Ответ

1 голос
/ 07 октября 2019

Да, это возможно. Хотя я не создал полный сайт / API с помощью Swift, я знаю, что Vapor использует себя для размещения своего веб-сайта, и мой (хотя и ограниченный) опыт работы с ним позволяет предположить, что это будет хорошим выбором. Тем не менее, вы также можете использовать Kitura или Perfect - попробуйте поискать сравнение между ними.

Удачи!

...