Kā izveidot vienkāršu REST API vietnē Rust
Ievads
Rust ir vairāku paradigmu programmēšanas valoda, kas vērsta uz veiktspēju un drošību, īpaši drošu vienlaicīgumu. Rūsa ir sintaktiski līdzīga C ++, taču nodrošina atmiņas drošību, neizmantojot atkritumu savākšanu.
Rust programmēšanas valoda palīdz rakstīt ātrāku un uzticamāku programmatūru. Programmēšanas valodas dizainā bieži vien ir pretrunā augsta līmeņa ergonomika un zema līmeņa vadība; Rūsa izaicina šo konfliktu. Līdzsvarojot jaudīgo tehnisko jaudu un lielisko izstrādātāju pieredzi, Rust dod jums iespēju kontrolēt zema līmeņa detaļas (piemēram, atmiņas izmantošanu) bez jebkādām problēmām, kas tradicionāli ir saistītas ar šādu vadību.
Uzziniet, kā izveidot REST API vietnē Rust-Soli pa solim
Šim nolūkam mēs izmantosim Raķešu ietvars API un Dīzeļdegvielas ORM ietvars pastāvīgām iezīmēm. Šis ietvars aptvers visas tālāk minētās lietas. Tātad, tas būs daudz vieglāk nekā to īstenot no nulles.
- Palaidiet tīmekļa serveri un atveriet PORT.
- Klausieties pieprasījumus šajā PORTĀ.
- Ja tiek saņemts pieprasījums, apskatiet ceļu HTTP galvenē.
- Novirziet pieprasījumu uz | _+_ | saskaņā ar Ceļu.
- Palīdzēs iegūt informāciju no pieprasījuma.
- Iepakojiet ģenerēto | _+_ | (jūs izveidojāt) un veidojiet | _+_ |.
- Nosūtiet | _+_ | atpakaļ pie sūtītāja.
Rūsas uzstādīšana naktī
Tā kā Rocket plaši izmanto Rust sintakses paplašinājumus un citas uzlabotas, nestabilas funkcijas, mums ir jāinstalē | _+_ |.
handler
Ja vēlaties instalēt | _+_ | tikai savā projektu direktorijā varat izmantot šādas iespējas:
data
Atkarības
response
Es izskaidrošu šīs kastes, kad tās izmantosim.
Dīzeļdegvielas uzstādīšana
Tātad, nākamā lieta, ko es darīšu, ir iestatīšana Dīzeļdegviela . Diesel nodrošina savu CLI, tāpēc mums tas vispirms ir jāinstalē. (Pieņemot, ka izmantojat PostgreSQL .)
response
Pēc tam jums jāpasaka Dīzeļam, kādi ir jūsu DB akreditācijas dati. Šī komanda ģenerēs | _+_ | failu.
nightly
Pēc tam palaidiet šo komandu:
rustup default nightly
Tādējādi tiks izveidota mūsu datu bāze (ja tā vēl nebija) un izveidots tukšs migrācijas direktorijs, ko mēs varam izmantot, lai pārvaldītu savu shēmu (vairāk par to vēlāk).
Palaižot iepriekš minēto kodu, var būt vairākas kļūdas.
nightly
To var viegli novērst, pievienojot | _+_ | ceļš uz vides mainīgajiem.
rustup override set nightly
Esmu pārsteigts, ka šīs kļūdas nav minētas Dīzeļdegvielas dokumenti .
Es ļoti iesaku palaist šīs komandas CMD vai Powershell. Ja izmantojat IDE termināli, jūs nesaņemsiet šādas kļūdas, un jūs galu galā tērēsit divas stundas, mēģinot noskaidrot, kas notiek.
Lai to labotu, ceļa mainīgajiem varat pievienot PG atkritumu mapes ceļu. Problēma atrisināta? Labi!
Izveidosim lietotāju tabulu un izveidosim migrāciju:
[dependencies] rocket = '0.4.4' rocket_codegen = '0.4.4' diesel = { version = '1.4.0', features = ['postgres'] } dotenv = '0.9.0' r2d2-diesel = '1.0' r2d2 = '0.8' serde = '1.0' serde_derive = '1.0' serde_json = '1.0' custom_derive ='0.1.7' [dependencies.rocket_contrib] version = '*' default-features = false features = ['json']
Pēc šīs komandas palaišanas jūs redzēsit, ka migrācijas mapē ir izveidoti divi faili.
Tālāk mēs uzrakstīsim migrācijas SQL:
cargo install diesel_cli — no-default-features — features postgre
.env
echo DATABASE_URL=postgres://username:password@localhost:port/diesel_demo > .env
diesel setup
Lai lietotu mūsu migrāciju, varat izmantot:
= note: LINK : fatal error LNK1181: cannot open input file ‘libpq.lib’
Ir labi pārliecināties, ka | _+_ | ir pareizs. Jūs varat ātri apstiprināt, ka jūsu | _+_ | pareizi atceļ migrāciju pārtaisīšana migrācija:
PG lib folder
Jūs varat redzēt, ka jūsu DB ir lietotāju tabula. Taisnība!
Es aizmirsu pieminēt, ja esat pamanījis, ir fails, kas tiek ģenerēts pēc Diesel uzstādīšanas palaišanas ar nosaukumu | _+_ |. Tam vajadzētu izskatīties šādi.
setx PQ_LIB_DIR [path to pg lib folder]
Forši, šeit nāk rūsas daļa
Tā kā mēs izmantosim ORM, acīmredzot mums ir jāpiesaista lietotāja tabula uz kaut ko Rust. Programmā Java mēs izmantojam klasi tabulu kartēšanai. InJava **, ** mēs parasti tos saucam Pupiņas . Rustā mēs izmantojam | _+_ | s. Izveidosim | _+_ |.
diesel migration generate users
Tagad jums var rasties jautājums, kas ir šīs anotācijas, piemēram, iepriekš minētā struktūras definīcija.
Tos sauc par atvasinājumiem. Tātad, šī līnija tiks iegūta serializēt un vaicājams iezīmes. | _+_ | un | _+_ | tiek izmantoti, lai kartētu datus uz atbildi un pieprasījumu.
Tagad es izveidošu vēl divas struktūras. Jūs tos iegūsit vēlāk.
up.sql
Nākamā lieta, ko mēs darīsim, ir īstenot | _+_ |. Tātad tam būs dažas metodes datu bāzes darbību veikšanai.
Šeit, kā redzat, mēs esam nodevuši savienojumu ar metodi un atgriezuši vektoru | _+_ | s. Mēs iegūstam visas lietotāju tabulas rindas un kartējam tās uz | _+_ | struktūra.
Protams, mēs gaidām kļūdas. Ziņojuma kļūda tiks izdrukāta panikas gadījumā.
CREATE TABLE users ( id SERIAL PRIMARY KEY, username VARCHAR NOT NULL, password VARCHAR NOT NULL, first_name VARCHAR NOT NULL )
Tagad mēs esam izveidojuši tabulu un struktūras, lai kartētu šo tabulu. Nākamā lieta, ko mēs darīsim, ir izveidot metodes tās izmantošanai. Tātad, mēs izveidosim | _+_ | failu. Mēs to parasti saucam par a hendleris .
down.sql
Tagad viss, kas mums jādara, ir izveidot savienojuma baseinu. Šeit ir īss paskaidrojums par savienojuma baseinu no Raķešu dokumentācija .
Rocket ietver iebūvētu, ORM-agnostic atbalstu datu bāzēm. Jo īpaši Rocket nodrošina procesuālu makro, kas ļauj ērti savienot savu Rocket lietojumprogrammu ar datu bāzēm, izmantojot savienojumu baseinus.
Datu bāzes savienojumu kopums ir datu struktūra, kas uztur aktīvus datu bāzes savienojumus vēlākai lietošanai lietojumprogrammā.
DROP TABLE users
Visbeidzot, mums ir jāuzsāk mūsu serveris | _+_ | failu.
diesel migration run
Savā projektā esmu pievienojis arī leņķisko priekšpusi. Es arī izmantošu mūsu Rust aizmuguri, lai to pasniegtu.
Lai palaistu lietojumprogrammu → | _+_ |.
noņemiet vairākas rakstzīmes python
Pārbaudīsim mūsu serveri ar Bezmiegs .
Es ceru, ka tas palīdz. Priekā!
#uzticēšanās #atpūta #api #tīmekļa izstrāde
Skatīt Arī:
- Fix QuickBooks algu kļūda 15243 (FCS pakalpojums ir atspējots)
- Reāllaika interaktīvās HTML tabulas ar Easybase un DataTables.net
- Izveidojiet dinamisku formu UIKit (kompozīcijas izkārtojums, atšķirīgs datu avots, UICollectionView)
- Kā bloķēt vietnes pārlūkā Chrome
- Firebase administratora SDK ar GraphQL