Необъявленный тип 'valid', такой модуль 'Validation' отсутствует

Я следил за показом фильма Рэя Вендерлиха ( https://videos.raywenderlich.com/screencasts/545-server-side-swift-with-vapor-basic-validation) (который не имеет компилируемого проекта), когда Я пытался набрать

let input: Valid<OnlyAlphanumeric> = try request.data["input"].validated()

И компилятор сказал мне, что Valid не существует. Я попытался найти это и обнаружил, что Vapor больше не выполняет такую ​​проверку и использует разные строки, найденные здесь: /questions/8650276/vapor-2-validation-valid-throws-ispolzovanie-neobyavlennogo-tipa-valid/8650288#8650288 которые:

guard let input = req.data["input"]?.string else { throw SomeError }
try input.validated(by: OnlyAlphanumeric())

Однако строки не имеют функции с именем validated(by:)

Я попытался импортировать проверку, но модуль не существует.

Есть ли способ завершить учебник сейчас? Валидация, по-видимому, вообще не включена в код Vapor.

1 ответ

Решение

Вам нужно добавить пакет провайдера проверки в ваш проект. Вы можете сделать это, добавив пакет в массив зависимостей в вашем Package.swift файл:

Для Swift 3 вы бы добавили это:

.Package(url: "https://github.com/vapor/validation-provider.git", majorVersion: 1)

В Swift 4 это будет выглядеть так:

.package(url: "https://github.com/vapor/validation-provider.git", from: "1.0.0"),

Тогда беги vapor updateи если вы используете Xcode, vapor xcode,

Вы можете импортировать ValidationProvider к файлам, которые вам нужны.

Убедитесь, что вы добавили провайдера в свой config:

try config.addProvider(ValidationProvider.Provider.self)
Другие вопросы по тегам