24.03. Programiranje web servisa kroz izradu aplikacije „Konvertor teksta“
1. UVOD U WEB SERVISE
Šta su web servisi?
Web servis je jedan od načina da dve aplikacije komuniciraju preko interneta:
Web servis omogućava da jedna aplikacija pošalje zahtev drugoj aplikaciji i dobije odgovor.
Na primer: Ako se otvori sajt za vremensku prognozu, taj sajt ne čuva podatke lokalno već poziva web servis koji vraća podatke o vremenu
Vrste web servisa
-
- SOAP (stariji, složeniji)
- REST (moderniji, jednostavniji)
Kako funkcioniše komunikacija?
Komunikacija se zasniva na HTTP protokolu: prvo se web serveru pošalje Zahtev (Request), a zatim se dobije Odgovor (Response)
KLIJENT → (zahtev) → SERVER
SERVER → (odgovor) → KLIJENT
Šta je API?
API (Application Programming Interface) je skup pravila preko kojih komuniciramo sa web servisom.
API definiše:
- koje zahteve možemo poslati
- koje podatke dobijamo nazad
Tema dana:
Izrada web servisa za konverziju ćirilica ↔ latinica + web aplikacija
1. deo – šta treba da radimo?
Prvo treba da napravimo web servis, a zatim web aplikaciju koja koristi taj servis
Servis treba da ima dve metode:
-
public string CirilicaULatinicu(string tekst) -
public string LatinicaUCirilicu(string tekst)
Aplikacija treba da u tu svrhu ima dva textbox-a i dva dugmeta. Klikom na dugme treba da se poziva web servis.
Kompletan tok:
-
korisnik unese tekst u prvi TextBox
-
klikne na odgovarajuće dugme
-
poziva se web servis
-
rezultat se prikazuje u drugom TextBox-u
U ovom zadatku web servis je „logika“, a web aplikacija je „interfejs“ ka korisniku.
- Napomena: pošto je ovakav zadatak već u opcijama za Maturski ispit, a u Pravilniku je tako formulisan kao da je "krojen" za Visual Studio 2010 i IIS. Stoga je to način na koji ćemo da ga radimo (mada ipak malo drugačije nego što je rađeno na predmetu Web Programiranje kod drugih nastavnika)
2: KREIRANJE WEB SERVISA
Kreiranje .asmx servisa
Za Visual Studio 2010: Add → New Item → Web Service
Primer servisa:
[WebMethod]
public string CirilicaULatinicu(string tekst)
{
return tekst.Replace("ћ", "ć").Replace("ч", "č").Replace("љ","lj");
}
-
[WebMethod]→ metoda dostupna klijentu -
metoda prima tekst
-
vraća tekst
Napomena:
*** Servis NE prikazuje ništa !
*** Samo obrađuje podatke !
Nastavak zadatka: dodati još zamena za slova (dž, nj, š, ž, đ, ...)
3: PROŠIRENJE SERVISA
Druga metoda
[WebMethod]
public string LatinicaUCirilicu(string tekst)
{
return tekst.Replace("ć", "ћ").Replace("č", "ч");
}
Napomena: Ovde je upotrebljena "pešačka" metoda rada - bez rečnika, funkcija, petlji, ....
4: KREIRANJE WEB APLIKACIJE
Dizajn stranice (Konvertor)
Elementi:
-
unos teksta ide u TextBox 1
-
rezultati konverzije idu u TextBox 2
-
Button (iz latinice u ćirilicu)
-
Button (из ћирилице у латиницу)
Dodavanje reference na servis:
U Solution Explorer-u: desni klik na naziv projekta:
-
Add Service Reference
(Postoji više načina na koji se ovo može raditi, ovo je samo jedan od njih)
Primer ASP.NET koda
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<p>... </p>
<asp:Button ID="Button2" runat="server" Text="из ћирилице у латиницу" OnClick="Button2_Click" />
Code-behind
protected void Button2_Click(object sender, EventArgs e)
{
ServiceReference1.Service1SoapClient s = new ServiceReference1.Service1SoapClient();
TextBox2.Text = s.LatinicaUCirilicu(TextBox1.Text);
}
Objašnjenje:
*** aplikacija POZIVA servis
*** servis vraća rezultat
Nastavak
1. Dodati podršku za ostala slova (i mala i velika slova)
2. Dodati dugme: „Obriši“
3. Dodati: validaciju unosa
4. Dodati poruku ako je tekst prazan
Rešenje
if (TextBox1.Text == "")
{
lblPoruka.Text = "Unesite tekst";
}