Õpetus: kuidas luua Vapor 2 projekt

Selle õpetuse lõpuks saate üles seada auruprojekti ja rakendada lihtsat marsruuti, tagastades stringi / numbri / jsoni :)

Selle õpetuse tulemuse leiate githubist siit

1. Installige Xcode

Xcode abil on teil automaatne installimine kiire. Laadige App Store'ist alla Xcode. Ja lõpetage installimine, avades Xcode'i ja järgides juhiseid.

2. Kontrollige Vapor 2 ühilduvust

Kui olete installimise lõpetanud, kontrollige, kas teie süsteem on nüüd Vapor 2 jaoks valmis, käivitades oma terminalis järgmise:

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

Te peaksite saama:

Ühildub auruga 2

3. Installige tööriistakast Vapor

Enne oma esimese Vapori projekti loomist laske meil installida ülimugav käsuribaliides (cli), mis aitab meil tulevikus palju aidata. Ainus tööriistakast Vapor.

Installime tööriistakasti Vapor Homebrew kaudu. Kui teil seda veel pole, soovitan seda hankida. See teeb teie jaoks ülilihtsaks sõltuvuste installimise, mida peate kindlasti Vaporiga suuremate projektide loomisel hiljem vajama. Installimiseks täitke oma terminalis järgmist:

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

Nüüd lisage Homebrew Tap ja saame lõpuks installida tööriistakasti Vapor

pruulima kraani aur / kodus kasutatav kraan
pruulima värskendus
pruulima paigaldage aur

4. Looge oma esimene projekt Vapor

Nüüd, kui meil on tööriistakast Vapor, on uue projekti loomine sama lihtne kui tippimine:

auru uus yourProjectName --branch = auru-2

Sellega luuakse uus projekt api-malli põhjal, mille leiate siit Githubi Vapopi hoidlast. Järgmine samm - Xcode-projekti genereerimine teie projektist teieProjectName / käivitage järgmine:

aur xcode -y

See võib võtta natuke aega .. kuid see genereerib Xcode'i projekti ja avab selle teie jaoks (tänu aurutööriistade kastile ).

5. Puhastage tarbetud failid + kood

Teil peaks olema selline projekti ülesehitus nüüd:

teieProjektiNimi /
├── Pakett.swift
├── Allikad /
│ ├── Rakendus /
│ │ ├── Kontrollerid /
└── │ │ └── PostController.swift
│ │ ├── mudelid /
│ │ │ └── Post.swift
│ │ ├── Marsruudid /
│ │ │ └── Routes.swift
└── │ └── Seadistamine /
│ │ ├── Config + Setup.swift
│ │ └── Tilk + häälestus.swift
│ └── Käivita /
├── Testid /
├── seadistamine /
├── avalik /
├── Sõltuvused /
└── Tooted /

Mulle meeldib kustutada (prügikasti kolida) kõik see, mis praegu pole oluline või mida me kavatseme omal jõul rakendada. Nii tahan tagada, et teaksime, mida me teeme, vajame ja kasutame, ning saaksime paremini aru .

teieProjektiNimi /
├── Pakett.swift
├── Allikad /
│ ├── Rakendus /
│ │ ├── Kontrollerid /
│ │ │ └── PostController.swift // delete
│ │ ├── mudelid /
│ │ │ └── Post.swift // delete
│ │ ├── Marsruudid /
│ │ │ └── Routes.swift
└── │ └── Seadistamine /
│ │ ├── Config + Setup.swift
│ │ └── Tilk + häälestus.swift
│ └── Käivita /
├── Testid /
├── seadistamine /
├── avalik /
├── Sõltuvused /
└── Tooted /
Märkus. Kui soovite rohkem teada saada kontrollerite ja mudelite kohta, siis kirjutasin neist ka õpetused: Kontrollerid ja mudelid

Järgmine: kustutage menüüst Seadistamine / Config + Setup.swift järgmised read:

impordi FluentProvider // kustuta
laiendi konfiguratsioon {
  public func setup () viskab {
    Node.fuzzy = [Row.self, JSON.self, Node.self] // kustuta
    
    proovige setupProviders ()
    proovige setupPreparations ()
  }
privaatfunktsioonide seadistamineProvideerid () viskab {
    proovige addProvider (FluentProvider.Provider.self) // kustutada
  }
private func setupPreparations () viskab {
    ettevalmistused.append (postitus ise) // kustuta
  }
}

Kustutage Config / droplet.jsonist string „Preparation“:

...
"käsud": [
  "valmistada" // kustuta
]
...

Pakendi.swift raames kustutage FluentProvider:

// swift-tools-version: 4.0
impordi pakettkirjeldus
lase pack = pakett (
  nimi: "minu esimene marsruut",
  tooted: [
    .raamatukogu (nimi: "App", sihtmärgid: ["App"]),
    .execvable (nimi: "Run", sihtmärgid: ["Run"])
  ],
  sõltuvused: [
    .package (URL: "https://github.com/vapor/vapor.git", .upToNextMajor (alates: "2.1.0")), // ärge unustage seda koma kustutada 
    .package (URL: "https://github.com/vapor/fluent-provider.git", .upToNextMajor (alates: "1.2.0")), // kustutage
  ],
  eesmärgid: [
    .target (nimi: "App", sõltuvused: ["Vapor", "FluentProvider"],
      välista: [
        "Seadistamine",
        "Avalik",
        "Ressursid",
    ]),
    .target (nimi: "Run", sõltuvused: ["App"]),
    .testTarget (nimi: "AppTests", sõltuvused: ["App", "Testing"])
  ]
)

Ja kõik alates marsruutidest / marsruutidest.swift on nii:

pikenduspiis {
  func setupRoutes () viskab {
    ... // kustuta kõik sellest funktsioonikorpusest
  }
}

Meie muudatuste või kustutuste rakendamiseks peame oma terminalis täitma:

aurude värskendus - ei

6. Rakendage oma esimene marsruut!

On mitmeid HTTP-meetodeid, millest GET, POST, PUT ja PATCH on tõenäoliselt kõige tuntumad. Soovime saada andmeid näiteks stringi kohta. Äkki teie nimi? Või SAA number. Võib-olla teie vanus?

Teostagem oma esimene GET-marsruut, sisestades marsruudi Routes / Routes.swift:

pikenduspiis {
  func setupRoutes () viskab {
    saada ("nimi") {req in
      naasta "Ethan Hunt"
    }
  }
}

Funktsiooni get (“nimi”) abil määratleksime, et see marsruut on juurdepääsetav, kui seda taotletakse GET-i kaudu aadressil url / name.

Kui vajutate nüüd nuppu cmd + r või esitusnuppu Xcode peal, käivitab see rakenduse localhost all pordiga 8080. Antud marsruudi korral saate oma brauseris nime saada nüüd all: 127.0.0.1:8080/name .

Märkus. Enne rakenduse käivitamist valige kindlasti nupu kõrval skeem
Märkus. Port, kust saate oma rakenduse juurde pääseda, on määratletud jaotises Config / server.swift - saate seda vastavalt soovile muuta ja rakendust uuesti käivitada :)

Saate lisada rohkem marsruute ja proovida rohkem, näiteks tagastades numbri või jsoni:

pikenduspiis {
  func setupRoutes () viskab {
    saada ("nimi") {req in
      naasta "Ethan Hunt"
    }
    saada ("vanus") {req sisse
      tagasta "\ (23)"
    }
    saama ("json") {req sisse
      naaske proovida JSON (sõlm: ["nimi": "Martin J. Lasek", "vanus": 26])
    }
  }
}

Pärast koodi muutmist ärge unustage Xcodes käsu või cmd + r käivitada, et see uuesti kompileerida ja tulemusi brauseris näha

See selleks! Olete oma esimese Vapori projekti edukalt ellu viinud !!

Suur tänu lugemise eest! Kui teil on ettepanekuid või parandusi, andke mulle sellest teada! Mulle meeldiks teid kuulda!

Twitter / Github / Instagram