Tutoriel: Comment configurer un projet Vapor 2

À la fin de ce didacticiel, vous serez en mesure de configurer un projet vapor et de mettre en œuvre un itinéraire simple renvoyant une chaîne / un nombre / un json :)

Vous pouvez trouver le résultat de ce tutoriel sur github ici

1. Installer Xcode

Avec Xcode, vous aurez automatiquement installé swift. Allez télécharger Xcode depuis l'App Store. Et terminez l'installation en ouvrant Xcode et en suivant les instructions.

2. Vérifiez la compatibilité de Vapor 2

Une fois l’installation terminée, vérifions que votre système est maintenant prêt pour Vapor 2 en effectuant les opérations suivantes sur votre terminal:

eval "$ (curl -sL check.vapor.sh)"

Tu devrais obtenir:

Compatible avec Vapor 2

3. Installer la boîte à outils Vapor

Avant de créer notre premier projet Vapor, laissez-nous installer une interface de ligne de commande (CLI) extrêmement pratique qui nous aidera beaucoup à l'avenir. La seule et unique boîte à outils Vapor.

Nous allons installer la boîte à outils Vapor via Homebrew. Si vous ne l’avez pas encore, je vous le recommande vivement. Il est très facile d'installer des dépendances dont vous aurez certainement besoin plus tard lors de la création de projets plus volumineux avec Vapor. Pour l’installation, exécutez les opérations suivantes dans votre terminal:

/ usr / bin / ruby ​​-e "$ (curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Maintenant, ajoutez Homebrew Tap et nous pouvons enfin installer Vapor Toolbox

robinet de brassage vapeur / homebrew-tap
mise à jour de la bière
brasser installer vapeur

4. Créez votre premier projet Vapor

Maintenant, avec la boîte à outils Vapor, créer un nouveau projet est aussi simple que de taper:

vapeur new yourProjectName --branch = vapeur-2

Cela créera un nouveau projet basé sur le modèle api que vous pouvez trouver dans le référentiel de Vapor sur Github ici. Prochaine étape - générer un projet Xcode, à partir de votre projet, votre nom de projet / exécuter les opérations suivantes:

vapeur xcode -y

Cela peut prendre un certain temps .. mais il générera le projet Xcode et l'ouvrira pour vous (merci vapor toolbox ).

5. Nettoyer les fichiers inutiles + code

Vous devriez avoir une structure de projet comme celle-ci maintenant:

votreNomProjet /
├── Package.swift
├── Sources /
├── App /
│ ├── Contrôleurs /
│ └── PostController.swift
│ ├── Modèles /
│ │ └── Post.swift
│ ├── Itinéraires /
│ │ └── Routes.swift
│ └── Setup /
│ ├── Config + Setup.swift
│ └── Droplet + Setup.swift
└── └── Run /
├── Tests /
├── Config /
├── Public /
├── Dépendances /
└── Produits /

J'aime supprimer (déplacer à la corbeille) tout ce qui est sans importance pour le moment ou que nous sommes sur le point de mettre en œuvre par nous-mêmes. De cette façon, je veux être sûr de savoir ce que nous faisons, ce dont nous avons besoin et ce que nous utilisons, et de mieux comprendre.

votreNomProjet /
├── Package.swift
├── Sources /
├── App /
│ ├── Contrôleurs /
│ └── PostController.swift // delete
│ ├── Modèles /
│ │ └── Post.swift // delete
│ ├── Itinéraires /
│ │ └── Routes.swift
│ └── Setup /
│ ├── Config + Setup.swift
│ └── Droplet + Setup.swift
└── └── Run /
├── Tests /
├── Config /
├── Public /
├── Dépendances /
└── Produits /
Remarque: si vous souhaitez en savoir plus sur les contrôleurs et les modèles, j'ai également écrit des tutoriels à leur sujet: Contrôleurs et modèles.

Next: supprimez les lignes suivantes de Setup / Config + Setup.swift:

importer FluentProvider // delete
extension Config {
  fonction publique setup () jette {
    Node.fuzzy = [Row.self, JSON.self, Node.self] // delete
    
    essayez setupProviders ()
    essayez setupPreparations ()
  }
fonction privée setupProviders () jette {
    essayez addProvider (FluentProvider.Provider.self) // delete
  }
fonction privée setupPreparations () jette {
    preparation.append (Post.self) // delete
  }
}

Dans Config / droplet.json, supprimez la chaîne «prepare»:

...
"commandes": [
  "prepare" // delete
]
...

Dans Package.swift, supprimez FluentProvider:

// swift-tools-version: 4.0
importer PackageDescription
let package = Package (
  nom: "mon-premier-itinéraire",
  des produits: [
    .library (nom: "App", cibles: ["App"]),
    .executable (name: "Run", cibles: ["Run"])
  ],
  dépendances: [
    .package (url: "https://github.com/vapor/vapor.git", .upToNextMajor (from: "2.1.0")), // n'oubliez pas de supprimer cette virgule
    .package (url: "https://github.com/vapor/fluent-provider.git", .upToNextMajor (from: "1.2.0")), // delete
  ],
  cibles: [
    .target (nom: "App", dépendances: ["Vapor", "FluentProvider"],
      exclure: [
        "Config",
        "Publique",
        "Ressources",
    ]),
    .target (nom: "Exécuter", dépendances: ["App"]),
    .testTarget (name: "AppTests", dépendances: ["App", "Testing"])
  ]
)

Et tout de Routes / Routes.swift comme ceci:

extension Droplet {
  func setupRoutes () jette {
    ... // efface tout dans ce corps de fonction
  }
}

Pour que nos modifications ou suppressions soient appliquées, nous devons exécuter dans notre terminal:

mise à jour de vapeur -y

6. Implémentez votre premier itinéraire!

Il existe plusieurs méthodes HTTP dont GET, POST, PUT et PATCH sont probablement les plus connues. Nous voulons obtenir des données, par exemple une chaîne. Peut-être ton nom? Ou obtenir un numéro. Peut-être ton âge?

Implémentons notre premier itinéraire GET en insérant dans Routes / Routes.swift:

extension Droplet {
  func setupRoutes () jette {
    get ("name") {req in
      retour "Ethan Hunt"
    }
  }
}

En utilisant la fonction get («nom»), nous définirions que cette route est accessible si elle est demandée via GET à l'adresse url / name.

Si vous appuyez maintenant sur cmd + r ou sur le bouton de lecture en haut de Xcode, l'application démarrera sous localhost avec le port 8080. Avec la route indiquée, vous pouvez obtenir le nom dans votre navigateur sous: 127.0.0.1:8080/name .

Remarque: assurez-vous de sélectionner Exécuter en tant que schéma en regard de votre bouton avant d'exécuter l'application.
Remarque: le port d'où vous pouvez accéder à votre application est défini dans Config / server.swift. Vous pouvez le modifier à votre guise et réexécuter l'application :)

Vous pouvez ajouter d'autres itinéraires et en essayer d'autres, comme en renvoyant un nombre ou un json:

extension Droplet {
  func setupRoutes () jette {
    get ("name") {req in
      retour "Ethan Hunt"
    }
    get ("age") {req in
      retourne "\ (23)"
    }
    get ("json") {req in
      return try JSON (noeud: ["nom": "Martin J. Lasek", "age": 26])
    }
  }
}

N'oubliez pas de lancer ou cmd + r sous Xcode après chaque modification du code afin de le recompiler et de pouvoir afficher les résultats dans votre navigateur.

C'est tout! Vous avez mis en œuvre avec succès votre premier projet Vapor !!

Merci beaucoup pour la lecture! Si vous avez des suggestions ou des améliorations faites le moi savoir! J'aimerais avoir de vos nouvelles!

Twitter / Github / Instagram