Я давно хотел иметь простой список задач в браузере. Что-то свободное от любых отвлекающих факторов. Создание этого с помощью Swift и знакомство с некоторыми задействованными библиотеками казалось отличным началом.
Это серия из 4 частей, в которых рассказывается, как настроить проект, начать работу с маршрутизацией, настроить базу данных и, наконец, создать модель и контроллеры нашего приложения. Чтобы увидеть часть 1, нажмите здесь.
Введение
Теперь, когда у нас есть веб-сервер, работающий и обслуживающий текст, давайте посмотрим, сможем ли мы заставить его обслуживать некоторый HTML. Мы также хотим внедрить некоторые значения из нашего быстрого кода в наш HTML. Для этого мы собираемся использовать идеальные усы.
Получение усов
Нам нужно добавить Perfect Mustache в наш список зависимостей проекта. Итак, в Package.swift
добавьте следующее.
.package(url: “https://github.com/PerfectlySoft/Perfect-Mustache.git", from: “3.0.0”)
Не забудьте добавить PerfectMustache
в список целевых зависимостей.
Вернувшись к нашему терминалу, мы обновим наш проект с помощью
swift package update swift package generate-xcodeproj
Чтобы убедиться, что все в порядке, добавьте import PerfectMustache
в список импорта в Main.swift
, соберите и запустите.
Добавление HTML-файлов
Теперь нам нужно добавить несколько файлов HTML в наш проект. Добавьте файл hello.html
в наш каталог webroot
и добавьте немного HTML.
Серверу нужен маршрут для этого нового html, и чтобы мы могли использовать Mustache, нам нужно создать тип, соответствующий протоколу MustachePageHandler
. У этого есть один метод, который нужно реализовать, func extendValuesForResponse(context contxt: MustacheWebEvaluationContext, collector: MustacheEvaluationOutputCollector)
Это обрабатывает данные, которые будут использоваться для заполнения любого шаблона усов.
У типа также есть свойство, которое можно передать шаблону для отображения.
Наш Main.swift
будет выглядеть примерно так.
Мы добавили маршрут для URI /helloMustache
. Ответ и запрос обрабатываются методом helloMustache(request: HTTPRequest, response: HTTPResponse)
. Здесь мы вызываем mustacheRequest
и передаем значение для name
в переменную типа MustacheEvaluationContext.MapType()
. Это просто псевдоним для [String:any]
.
Соберите и запустите, перейдите к localhost:8080/helloMustache
, и вы должны увидеть HTML со значениями, переданными из вашего быстрого кода. Круто а!
Следующий…
Итак, теперь наш базовый веб-сервер Swift обслуживает не только текст, но и фактические HTML-файлы, и мы можем передавать некоторые новые вычисляемые значения из нашего быстрого кода. Далее мы рассмотрим некоторые действия с базой данных с помощью postgrSQL и StORM. Нажмите на эту ссылку, чтобы увидеть больше.