Введение
Swift является языком программирования от Apple. Он быстрый, безопасный и современный, и он имеет огромное сообщество для поддержки языка. Swift используется в основном для разработки IOS и приложений MacOS, но Swift 3, вы можете использовать для разработки серверных приложений.
Vapor является популярным фреймворком на стороне сервера Swift. С Swift в паре они быстры и современны, и он поддерживают многие из функций, которые вы увидите в фреймворке для других языков программирования.
В этом руководстве вы установите Swift и Vapor на Ubuntu 16.04. Вы проверите свои настройки путем создания простого веб-приложения, используя один из шаблонов Vapor.
Предпосылки
Для выполнения этой статьи вам потребуется:
- Один сервер Ubuntu 16.04 с некорневым пользователем с доступом sudo. Вы можете узнать, как установить его с помощью руководства по начальной настройке сервера.
- Git установленный на вашем сервере. Git уже должен быть установлен на Ubuntu 16.04, но если это не так, запустите sudo apt-get install git.
Шаг 1 – Установка Swift
Для того, чтобы иметь возможность создавать и запускать веб-приложения на Vapor, в первую очередь необходимо установить Swift.
Во-первых, убедитесь, что у вас последний список пакетов в системе:
sudo apt-get update
Затем установите предпосылки Swift , которые включают в себя clang и некоторые компоненты Python 2.7:
sudo apt-get install clang libicu-dev libpython2.7
После этого загрузите последнюю версию Swift. Это не доступно с помощью apt, но вы можете загрузить его вручную с помощью страницы загрузки Swift (https://swift.org/download/), или wget:
wget https://swift.org/builds/swift-4.0-release/ubuntu1604/swift-4.0-RELEASE/swift-4.0-RELEASE-ubuntu16.04.tar.gz
Далее, убедитесь, что ваша загрузка не была повреждена или подделана. PGP ключи импорта Swift в ваш keyring, который будет использоваться для проверки подписи файла:
gpg --keyserver hkp://pool.sks-keyservers.net \ --recv-keys \ '7463 A81A 4B2E EA1B 551F FBCF D441 C977 412B 37AD' \ '1BE1 E29A 084C B305 F397 D62A 9F59 7F4D 21A5 6D5F' \ 'A3BA FD35 56A5 9079 C068 94BD 63BC 1CFE 91D3 06C6' \ '5E4D F843 FB06 5D7F 7E24 FBA2 EF54 30F0 71E1 B235'
Вы увидите этот вывод:
... gpg: key 412B37AD: public key "Swift Automatic Signing Key #1 <swift-infrastructure@swift.org>" imported gpg: key 21A56D5F: public key "Swift 2.2 Release Signing Key <swift-infrastructure@swift.org>" imported gpg: key 91D306C6: public key "Swift 3.x Release Signing Key <swift-infrastructure@swift.org>" imported gpg: key 71E1B235: public key "Swift 4.x Release Signing Key <swift-infrastructure@swift.org>" imported gpg: no ultimately trusted keys found gpg: Total number processed: 4 gpg: imported: 4 (RSA: 4)
После импорта ключей, загрузите файл подписи для загруженного выпуска:
wget https://swift.org/builds/swift-4.0-release/ubuntu1604/swift-4.0-RELEASE/swift-4.0-RELEASE-ubuntu16.04.tar.gz.sig
Для проверки подписи файла, выполните следующую команду, которая генерирует следующий вывод:
gpg --verify swift-4.0-RELEASE-ubuntu16.04.tar.gz.sig
Вы увидите этот вывод:
gpg: assuming signed data in `swift-4.0-RELEASE-ubuntu16.04.tar.gz' gpg: Signature made Wed 20 Sep 2017 01:13:38 AM UTC using RSA key ID 71E1B235 gpg: Good signature from "Swift 4.x Release Signing Key <swift-infrastructure@swift.org>" Primary key fingerprint: 5E4D F843 FB06 5D7F 7E24 FBA2 EF54 30F0 71E1 B235
Вы можете увидеть предупреждение, оно выглядит следующим образом:
gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner.
Это означает, что Swift-ключи, которые вы импортировали, еще не доверенные, либо явно вами, либо другими ключами, установленными в вашем брелке. Вы можете спокойно игнорировать эти сообщения. Однако, если вы получили другую ошибку, вы должны повторно загрузить двоичный файл Swift.
Теперь мы действительно можем установить Swift. Выполните следующую команду для извлечения двоичного кода, который вы скачали ранее:
tar xzf swift-4.0-RELEASE-ubuntu16.04.tar.gz
Затем добавьте набор инструментов Swift в своем пути, так что вы можете запустить команду swift:
export PATH=swift-4.0-RELEASE-ubuntu16.04/usr/bin:"${PATH}"
Ввод этой команды только добавит команду swift в пути для текущего сеанса оболочки. Для того, чтобы убедиться, что он автоматически добавляется в последующих сеансах, добавьте его в файл .bashrc.
Откройте файл .bashrc:
nano ~/.bashrc
Добавьте следующую строку в конце файла
. . . export PATH=swift-4.0-RELEASE-ubuntu16.04/usr/bin:"${PATH}"
Сохраните и закройте файл.
Для того, чтобы убедиться, что все работает, запустите команду swift:
swift
Вы будете встречены с Swift REPL, что свидетельствует о том, что все работает правильно.
Welcome to Swift version 4.0 (swift-4.0-RELEASE). Type :help for assistance. 1>
Давайте дважды проверим, что все работает правильно. Введите эту программу, которая суммирует все целые числа от 1 до 5. Введите каждую строку в REPL, нажав на клавишу ENTER после каждой строки:
var x = 0 for i in 1...5 { x += i } x
REPL отобразит результат вычисления:
$R0: Int = 15
Выход Swift REPL с CTRL+D. Теперь, когда установлен Swift, мы готовы установить Vapor.
Шаг 2 – Установка Vapor
Чтобы установить Vapor, вы загрузите и выполните скрипт от разработчиков Vapor, который добавляет официальный репозиторий пакетов Vapor к списку пакетов вашего сервера. Тогда вы будете использовать apt, чтобы установить последнюю версию Vapor.
Это, как правило, не является хорошей практикой безопасности выполнять скрипты, загруженные из других, не проверяя их первым. Во- первых, загрузите установочный скрипт на сервер с помощью команды curl с переключателем -o, чтобы указать имя локального файла:
curl -sL apt.vapor.sh -o apt.vapor.sh
Используйте команду less, чтобы проверить этот скрипт:
less apt.vapor.sh
После того, как вы осмотрели содержимое инсталляционного скрипта, выполняйте скрипт для добавления репозитория:
bash ./apt.vapor.sh
Вам будет предложено ввести пароль SUDO. Введите его как сценарий, для возможности добавления новых пакетов с источника.
После того, как сценарий завершится, вы можете установить пакет vapor и его зависимости.
sudo apt-get install vapor
Вы можете убедиться в том, что пара была успешно установлена с помощью другого скрипта, предоставленного разработчиками Vapor. Еще раз загрузите скрипт, проверьте его, а затем выполнить его:
curl -sL check.vapor.sh -o check.vapor.sh less check.vapor.sh bash ./check.vapor.sh
Вы увидите этот вывод, который указывает, что пара была успешно установлена:
? Compatible with Vapor 2
Теперь, когда оба были установлены Swift и Vapor, вы можете создать свое первое приложение Vapor.
Шаг 3 – Создание приложения Vapor
Для того, чтобы создать наше приложение, мы будем использовать шаблон Vapor, который обеспечивает по умолчанию. Шаблон web позволяет создать пользовательское веб – приложение.
Этот шаблон предполагает, что вы используете Git и что вы настроили его с вашим именем и адресом электронной почты. Если у вас нет, вы можете увидеть сообщение об ошибке, которое покажет вам настроить Git. Вы можете спокойно игнорировать это сообщение, или выполнить эти команды, чтобы предоставить информацию о себе:
git config --global user.email "ваша_почта@example.ru" git config --global user.name "Ваше имя"
Чтобы создать веб-приложение на основе этого шаблона, выполните следующую команду:
vapor new demo --template=web
Скрипт генерирует новое приложение в новом каталоге с указанным именем:
Cloning Template [Done] Updating Package Name [Done] Initializing git repository [Done] ... _ __ ___ ___ ___ \ \ / / /\ | |_) / / \ | |_) \_\/ /_/--\ |_| \_\_/ |_| \ a web framework for Swift Project "demo" has been created. Type `cd demo` to enter the project directory. Use `vapor cloud deploy` to host your project for free! Enjoy!
Если вы хотели создать API вместо полного веб – приложения, вы можете использовать шаблон api: .vapor new demo –template=api
Посмотрите на исходный код веб – шаблона (http://github.com/vapor/web-template) и шаблон api (http://github.com/vapor/api-template), чтобы увидеть, как они работают.
Давайте запустим наше приложение и увидим его в действии.
Шаг 4 – Компиляция и запуск приложения Vapor
Приложения Swift должны быть скомпилированы, в отличие от приложений в Python или Ruby. Это означает, что, прежде чем вы можете запустить приложение Vapor, вы должны запустить процесс сборки.
Во- первых, перейти на вновь созданную папку demo:
cd demo
Затем выполните команду vapor build для компиляции веб – приложения.
vapor build
Первый раз при построении приложения, процесс получит некоторую зависимость. Он будет кэшировать эти и пропустить этот шаг в будущее, которое сделает процесс сборки намного быстрее.
После сборки, когда процесс завершится, запустите приложение с помощью следующей команды:
vapor run serve
Сервер запуститься, отображая этот вывод:
Running demo ... ... Starting server on 0.0.0.0:8080
Вы увидите предупреждение о небезопасном хэше и ключах шифрования, но вы можете игнорировать их, пока вы делаете демонстрационное приложение. Когда вы строите свое собственное приложение, следуйте инструкциям предупреждения.
Откройте веб – браузер и посетите рабочую страницу приветствия Vapor приложения: http://your_server_ip:8080.
Вывод
Swift сообщество неуклонно растет, и есть много способов принять участие. Хотя Swift в основном используется для создания родных приложений IOS и MacOS, Swift на платформе Linux находится на подъеме. Вы можете узнать больше о Swift, ознакомившись с языком программирования Swift (https://itunes.apple.com/us/book/the-swift-programming-language-swift-4/id881256329?mt=11), бесплатную электронную книгу от Apple. Чтобы узнать больше о Vapor, проверьте их документацию (https://docs.vapor.codes/2.0/).