validation swift3 vapor

validation - Validación de Vapor 2 Tipo válido lanza "Uso del tipo no declarado Válido"



swift3 (2)

Yo tuve el mismo problema. Esto debería funcionar:

.Package(url: "https://github.com/vapor/validation.git", majorVersion: 1) ... import Validation ... try EmailValidator().validate(email)

Intento utilizar el tipo válido de Vapor 2, pero el compilador solo dice: "Uso del tipo no declarado Válido".

Había leído: https://docs.vapor.codes/2.0/validation/package/ + https://docs.vapor.codes/2.0/validation/overview/

En mi mi Package.swift he definido

  • /vapor/vapor.git
  • /vapor/validation-provider.git
  • /fluent-provider.git

como dependencias.

Si intento usar Valid<SomeValidator> el compilador dice: "Uso del tipo no declarado Válido".

El uso de import VaporValidation import Validation vs import VaporValidation no hace diferencia.

¿Alguien tiene una idea de cómo puedo hacer que Válido funcione?

THX por tu ayuda

Editar: vapor new validtest --api un nuevo proyecto Vapor vapor new validtest --api .

Editado el paquete.swift:

import PackageDescription let package = Package( name: "validtest", targets: [ Target(name: "App"), Target(name: "Run", dependencies: ["App"]), ], dependencies: [ .Package(url: "https://github.com/vapor/vapor.git", majorVersion: 2), .Package(url: "https://github.com/vapor/validation.git", majorVersion: 1), .Package(url: "https://github.com/vapor/validation-provider.git", majorVersion: 1), .Package(url: "https://github.com/vapor/fluent-provider.git", majorVersion: 1) ], exclude: [ "Config", "Database", "Localization", "Public", "Resources", ] )

Ran vapor fetch y vapor xcode .

En Routes.swift del código de ejemplo, probé esto:

import Vapor import FluentProvider import Validation // or and both imports are tested import VaporValidation extension Droplet { func setupRoutes() throws { get("info") { req in let input: Valid<OnlyAlphanumeric> = try req.data["input"].validated()

No importa qué importación utilicé, el compilador siempre dice: "Uso del tipo no declarado Válido".


En lugar de

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

La validación de Vapor 2 usa

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

Si la cadena de entrada no es válida, se lanzará un ValidationError .