Reitit ja parametrit
Käsittele HTTP:tä.
Reitit ja parametrit on ilmainen Ruby Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Ruby Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Ruby Academy-kurssilla on yhteensä 4 oppituntia.
HTTP-pyyntöjen käsittely
Web-sovellukset vastaavat pyyntöihin täsmäyttämällä reittejä ja lukemalla parametreja.
- Polun osat voivat olla dynaamisia
- Kyselymerkkijonot välittävät lisätietoja
- Lomakerungot sisältävät lähetettyjä kenttiä
Sinatra tarjoaa kaikki nämä params-hashin kautta.
require 'sinatra'
get '/echo' do
params['msg'].to_s
endNimetyt reittiparametrit
Kaksoispiste polussa määrittää nimetyn parametrin, joka sieppaa polun osan.
/users/:idtäsmää polkuun/users/42- Siepattu arvo näkyy arvona
params['id']
require 'sinatra'
get '/users/:id' do
"User ID is #{params['id']}"
endUseita parametreja
Reitillä voi olla useita nimettyjä parametreja.
- Jokaisesta kaksoispisteellä alkavasta osasta tulee avain
params-hashiin - Polun järjestyksellä ei ole merkitystä arvoja haettaessa
require 'sinatra'
get '/posts/:year/:month' do
"Posts from #{params['month']}/#{params['year']}"
endKyselymerkkijonon parametrit
Kyselymerkkijonon arvot merkin ? jälkeen päätyvät myös params-hashiin.
/search?q=rubytuottaa arvonparams['q'] == 'ruby'- Useat avain–arvo-parit erotetaan merkillä
&
require 'sinatra'
get '/search' do
"Searching for: #{params['q']}"
endparams-parametrin käsittely Hash-oliona
params-olio toimii Ruby-hashin tavoin. Tavallisella hashilla harjoittelu tekee toimintamalleista selkeitä.
- Käyttäkää
fetch-metodia oletusarvon kanssa turvallisuuden lisäämiseksi - Avaimet ovat käytännön mukaan merkkijonoja
params = { 'name' => 'Ada', 'lang' => 'Ruby' }
puts params['name']
puts params.fetch('age', 'unknown')Lomaketiedot POST-pyynnöllä
post-pyynnöissä lähetetyt lomakekentät näkyvät myös params-hashissa.
- Sinatra jäsentää pyynnön rungon automaattisesti
- Arvoihin pääsee käsiksi samalla tavalla kuin kyselyparametreihin
require 'sinatra'
post '/signup' do
"Welcome, #{params['username']}"
endSplat-parametrit
Splat (*) täsmää mihin tahansa merkkimäärään ja tallentaa merkit params['splat']-taulukkoon.
/files/*sieppaa polun loppuosan- Useat splatit tuottavat useita taulukon alkioita
require 'sinatra'
get '/files/*' do
"Path: #{params['splat'].first}"
endValinnaiset ja regex-reitit
Reiteissä voidaan käyttää säännöllisiä lausekkeita täsmälliseen täsmäytykseen.
- Siepatut arvot ovat käytettävissä kohteessa
params['captures'] - Hyödyllistä esimerkiksi rajoituksiin, joissa sallitaan vain numeeriset tunnisteet
require 'sinatra'
get %r{/item/(\d+)} do
"Item #{params['captures'].first}"
endParametrien validointi
Tehkää saapuville params-parametreille aina validointi ja muunnos, sillä ne saapuvat merkkijonoina.
- Käyttäkää numeroille
to_i-metodia taiInteger()-metodia - Hylätkää puuttuvat pakolliset arvot selkeällä virheilmoituksella
def parse_id(raw)
id = Integer(raw)
raise 'must be positive' if id <= 0
id
end
puts parse_id('42')Oletusarvot
Antakaa valinnaisille params-parametreille järkevät oletusarvot nil-virheiden välttämiseksi.
params.fetch('page', '1')- Yhdistäkää tämä muunnokseen turvallisen sivutuksen toteuttamiseksi
params = { 'page' => nil }
page = (params['page'] || '1').to_i
puts "Page: #{page}"Uudelleenohjaaminen
Käyttäkää redirect-metodia ohjataksenne asiakkaan toiseen URL-osoitteeseen.
- Lähettää oletusarvoisesti 302-tilakoodin
- Yleinen ratkaisu onnistuneen lomakkeen lähettämisen jälkeen
require 'sinatra'
post '/login' do
redirect '/dashboard'
endPikatarkistus
Tarkistakaa, mitä tiedätte reiteistä ja params-parametreista.
Kertaus
Opitte, miten Sinatra käsittelee syötteitä:
- Nimetyt params-parametrit määritetään polussa merkinnällä
:name - Kyselymerkkijonot ja lomakekentät täyttävät myös
params-hashin - Splatit ja regex-reitit sieppaavat joustavasti määritettyjä polkuja
- Validoikaa ja muuntakaa merkkijonomuotoiset params-parametrit aina
- Käyttäkää
redirect-metodia asiakkaiden siirtämiseen URL-osoitteiden välillä
Seuraavaksi palautatte jäsenneltyjä JSON-vastauksia.
Opi Ruby tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 29
- Oppitunnit
- 109
Usein kysytyt kysymykset
Onko oppitunti ”Reitit ja parametrit” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Ruby Academy-oppimispolun 3 oppituntia, myös oppitunnin “Reitit ja parametrit”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Ruby Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Reitit ja parametrit”?
Käsittele HTTP:tä. Harjoittelet Ruby Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Ruby Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Ruby Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Reitit ja parametrit”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Ruby Academy-oppitunnilla?
Kyllä. Jokainen Ruby Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Sinatran perusteet
- Reitit ja parametrit
- JSON-rajapinnat
- Middleware ja Rack