Documente Academic
Documente Profesional
Documente Cultură
GET
Negocierea continutului
Mecanismul prin care agentul poate specifica tipurile de reprezentari ale resursei pe
care le prefera sa le receptioneze ca raspuns la o cerere
Exemplu: pp. un navigator Web care cere o pagina HTML.
Parte cererii este un antet HTTP Accept care listeaza tipurile de imagini care poate fi
randata de navigatorul Web, cu greutati care indica preferintele sale.
Cand aplicatia Web receptioneaza cererea,
Un mecanism similar poate fi utilizat pentru specificarea limbajului natural dorit la raspuns
Un client AJAX poate prefera un raspuns codat in JSON ca prima alegere, apoi XML, si in
final SOAP, deoarece aceasta este ordinea care minimizeaza timpul de parsare
Clientul include un antet Accept in cererea sa indicand ca accepta aceste tipuri media si
apoi asigneaza preferinte adecvate
Clientul AJAX receptioneaza raspunsul in format care este mai eficient pentru a-l procesa
daca serviciul Web il ofera, dar poate totusi functiona daca serviciile Web ofera formate
acceptabile.
WSul poate fi atualizat la o data ulterioara pentru a imbunati erformanta si clientii vor
beneficia autoat de modificarile respective
2.
3.
4.
Tringhiul REST
Interfata = verb,
Tipurile de continut
Identificator de resurse
= substantiv (noun).
REST defineste
substantivele care fiind
neconstranse a.i. clientii
nu trebuie sa cunoasca
intreaga resursa
10
1.
2.
11
Anumiti vendori, precum Amazon, ofera atat interfete SOAP cat si REST
Amazon 2003: 85 % din utilizarile WS s-au realizat prin interfata REST.
SOAP 1.1
WSDL 1.1
Defineste toate legaturile HTTP, una pentru GET si alta pentru POST.
Aceasta inseamna ca nu se poate descrie un serviciu care are o combinatie de operatii sigure si
operatii nesigure
De asemenea nu se poate utiliza intotdeauna metoda corecta HTTP pentru orice operatie pentru
ca PUT, DELETE, nu sunt suportate.
Nu ofere nici o modalitate de a descrie mesaje care se refera la alte WSuri, adica n-are
suport pentru hiper-linking.
12
13
Web 2.0
15
Syndication-1
16
Syndication-2
RSS 2.0
17
XSLT
18
Web feeds sunt documente bazate pe XML structurate cu RSS sau Atom.
Web scraping (strangere) nu este modalitatea cea mai nobila de colectare date si
poate incalca drepsturile de proprietate
<link>
http://us.rd.yahoo.com/dailynews/rss/weather/Belleville_IL/*
http://weather.yahoo.com/forecast/62221_f.html
</link>
<pubDate>Tue, 13 Mar 2007 11:55 am CDT</pubDate>
<yweather:condition text="Fair" code="34" temp="77"
date="Tue, 13 Mar 2007 11:55 am CDT" />
<description>
<![CDATA[
<img src="http://l.yimg.com/us.yimg.com/i/us/we/52/34.gif" /><br />
<b>Current Conditions:</b><br />
Fair, 77 F<BR /><BR />
<b>Forecast:</b><BR />
Tue - Partly Cloudy. High: 81 Low: 58<br />
Wed - Partly Cloudy. High: 76 Low: 55<br /> <br />
<a href="http://us.rd.yahoo.com/dailynews/rss/weather/
Belleville_IL/*
http://weather.yahoo.com/forecast/62221_f.html">
Full Forecast at Yahoo! Weather
</a><BR/>
(provided by The Weather Channel)<br/>
]]>
</description>
<yweather:forecast day="Tue" date="13 Mar 2007" low="58"
high="81"
text="Partly Cloudy" code="30" />
<yweather:forecast day="Wed" date="14 Mar 2007" low="55"
high="76"
text="Partly Cloudy" code="30" />
<guid isPermaLink="false">62221_2007_03_13_11_55_CDT</guid>
</item>
</channel>
</rss>
20
PHP code care transforma acest alimentator intrun servivciu Web tip REST
<?php
/* Using feeds to distribute information with PHP.
* This example shows how to take an RSS feed and strip out the information
* desired by the application, giving only a minimal amount of data to the client.*/
/* Get the RSS feed from Yahoo! for my zip code */
$results = file_get_contents('http://weather.yahooapis.com/forecastrss?p=62221');
$xml = new SimpleXMLElement($results);
/* Create the XML for the client */
$response = '<response code="200">';
$response .= '<weather>';
/* Create the prefix context for the XPath query */
$xml->registerXPathNamespace('y', 'http://xml.weather.yahoo.com/ns/rss/1.0');
/* Gather the temperature data */
$temp = $xml->xpath('//y:condition');
/* Fill in information for the client */
$response .= '<temp>'.$temp[0]['text'].', '.$temp[0]['temp'].' °F</temp>';
$response .= '<img>'.$xml->channel->image->url.'</img>';
$response .= '<link>'.$xml->channel->image->link.'</link>';
$response .= '</weather>';
$response .= '</response>';
/* Change the header to text/xml so that the client can use the return string as XML*/
header('Content-Type: text/xml');
/* Give the client the XML */
print($response); ?>
21
Validarea alimentatorului
Serviciile de validare a alimentatorilor sunt disponibile pentru a verifica
validitatea unui alimentator pentru a fi sigur ca aplicatia va lucra cu
acesta
Periodic verifica validitatea alimentatorului pentru a asigura ca serviciul
de agregare lucreaza
Sau scrie o aplicatie care realizeaza validarea alimentatorului in mod
automat
Exista un numar de validatori dintre care se poate alege:
1.
2.
3.
Mashup-uri & WS
23
Mashup
= site Web sau aplicatie care combina doua sau mai multe surse
de informare intr-o noua aplicatie Web
Este o aplicatie Web hibrida in care parti ale aplicatiei provin din
interfete publice precum alimentatori web, scraping, si servicii
Web.
Termenul a devenit prima data popular in industria muzicii, cand
DJ din intreaga lume au inceput sa combine parti de inregsitrari
existente de muzica (cateodata de genuri diferite) pentru a crea
noi inregistrari
Prima aplicatie web publica notabila care a utilizat doua APIuri
diferite a fost lansata in Aprilie 2005: HousingMaps.com.
Prin utilizarea JavaScript de la Google folosit pentru harti si
combinarea acestuia cu site-ul calsic Craigslist, autorul a creat un
site care permite utilizatorilor sa vizualizeze cautarea de case in
majoritatea oraselor din SUA
Nu mukt dupa aceea, Google si alte motoare da cautare au
eliberat public APIurile pentru resurse lor care permite
dezvoltatorilor comunitatii web sa raspunda cu sute de mashupuri.
24
25
Date publice
Date de verificare
Inregistrari de afaceri.
Cautare de persoane.
Nume
Varsta/data nasterii
Adresa
Numar de telefon
Identificator personal (ex. CNP, numar de asigurare sociala)
Servicii open-source
29
2.
3.
4.
Codare.
30