Ajax Search API
Adam Kęsy
Co to takiego ?
• Biblioteka JavaScript zapewniająca programistyczny dostęp do zasobów wyszukiwarki Google.
• Początkowo dostępne wyłącznie jako zestaw skryptów JavaScript.
• Obecnie Google AJAX Search API stosuje model REST. Pozwala to na implementację wyszukiwarek zarówno w JavaScript/Ajax jak i po stronie serwera (np. w PHP).
• Biblioteka Google Ajax Search API zastąpiła wycofane pod koniec 2006 roku rozwiązanie o nazwie Google SOAP Search API. Obecny interfejs API wyszukiwarki Google jest dostępny pod dwoma
postaciami:
― biblioteka JavaScript
― zestaw adresów URL realizujących usługę w modelu REST
• Biblioteka JS pozwala na osadzenie wyszukiwarki WWW w kodzie HTML, natomiast model REST udostępnia zasoby Google skryptom przetwarzanym po stronie serwera (np. PHP, Perl).
REST (Representational state transfer)
• Wzorzec architektury oprogramowania dla takich systemów jak Internet (World Wide Web).
• Jest to architektura klient-serwer.
Startujemy
• Usługi Google Ajax Search API są bezpłatne lecz wymagają rejestracji i generowania kluczy.
• Po utworzeniu konta Google (lub korzystając np. z konta Gmail) wchodzimy na stronę
http://code.google.com/apis/ajaxsearch/signup.html.
• W formularzu wprowadzamy adres URL aplikacji, która będzie wykorzystywała Google API.
Generowanie klucza
Wygenerowany przykład
W przeglądarce
Ajax i JavaScript
• Wyszukiwarkę Ajaksową osadzamy w kodzie HTML w dwóch miejscach:
― w nagłówku strony (tj. pomiędzy znacznikami <head></head>) dodajemy skrypt JavaScript
― w treści strony (tj. pomiędzy znacznikami <body></body>) dodajemy element div przeznaczony na wyszukiwarkę
• Pierwszy ze znaczników script za ustalenie klucza – podajemy wygenerowany klucz.
Kod JS zawarty w drugim elemencie script
• google.load
• google.load(moduleName, moduleVersion, optionalSettings), allows you to call individual APIs by version, where:
• moduleName is the name of the API (e.g., "maps" or "search").
• version specifies the version of the API module, as described below. You must always specify the version of the API you are using. If you are unsure which version you want to use, use the version stated in the in the documentation for each API.
• optionalSettings specifies all optional configuration options for the API you are loading as a JavaScript object literal. Different APIs have different options as listed in available APIs. The possible properties are:
• callback: The function to call once the script has loaded. If using the Auto-loading feature, this must specify a function name, not a function reference.
• language: The language in which to localize the API's UI controls. This is specified as a ISO639 language code.
• nocss: A boolean that tells the API whether to load any style sheets typically associated with its controls. If you don't intend to use the default CSS, you can reduce the load time by setting this to true. The default setting is false.
• packages: An array of strings specifying related packages to be read in along with the core API.
For example, you could load "piechart" and "table" along with the Visualization API.
• base_domain: The base domain from which to load the API. For example, you could load from
"ditu.google.cn" with the "maps" module to get the Chinese version of the Maps API.
• other_params: Specific parameters supported by a particular API (and usually very specific to the API). An alternative to passing in a parameter via a <script> tag.
Search Control
• Główny obiekt Google Web Search API koordynujący
wyszukiwanie z wielu różnych serwisów, z których możemy wyróżnid:
― LocalSearch
― WebSearch
― VideoSearch
― BlogSearch
― NewsSearch
― ImageSearch
― PatentSearch
― BookSearch(experymentalny)
Search Control – dodawanie wyszukiwarek
// Tworzymy search control
var searchControl = new google.search.SearchControl();
// Dodajemy wyszukiwarki
var localSearch = new google.search.LocalSearch();
searchControl.addSearcher(localSearch);
searchControl.addSearcher(new google.search.WebSearch());
searchControl.addSearcher(new google.search.VideoSearch());
searchControl.addSearcher(new google.search.BlogSearch());
Search Control - kończymy
// Ustawiamy swoją lokalizację
localSearch.setCenterPoint("New York, NY");
// Rysujemy wyszukiwarkę wskazując, pod jaki element strony ma się podczepid
searchControl.draw(document.getElementById("searchcontrol"));
// Zaczynamy wyszukiwanie
searchControl.execute("Google");
}
// Ustalamy funkcję, która ma się wykonad, gdy dokument się załaduje google.setOnLoadCallback(OnLoad);
Modyfikacja wyglądu
• Wygląd wyszukiwarki oraz wyników wyszukiwania
modyfikujemy stylami CSS. Umożliwiają to liczne klasy zawarte w kodzie HTML, zwracanym przez Google. Najważniejszymi są:
―.gsc-search-box — formularz wyszukiwania
―.gsc-resultsHeader — nagłówek z ikonami
―.gsc-result — pojedynczy wynik wyszukiwania
―.gsc-cursor-box — wskaźnik stronicowania wyników
―.gs-title — tytuł wyniku
―.gs-snippet — opis wyniku
―.gs-visibleUrl — adres URL wyniku
Modyfikacja wyglądu
Modyfikacja wyglądu – po zastosowaniu CSS
Informacje o wykorzystaniu technologii Google
• Licencja użytkownika usług Google AJAX Search API nakazuje umieszczenie loga Google na każdej stronie stosującej API.
Zadanie to wykorzystujemy wywołując metodę getBranding().
Usługa REST
• Google AJAX Search API pozwala na przeszukiwanie zasobów wyszukiwarki Google nie tylko w JavaScript, ale także w
skryptach wykonywanych po stronie serwera, a więc w PHP, Perlu, Ruby czy Pythonie.
• Wyszukiwanie w sieci WWW realizuje skrypt o adresie:
http://ajax.googleapis.com/ajax/services/search/web Ma on dwa obowiązkowe parametry:
― v - wersja oprogramowania (obecny interfejs Google AJAX Search API jest opatrzony numerem wersji 1.0)
― q - wyszukiwana fraza.
• http://ajax.googleapis.com/ajax/services/search/web?v=1.0&
q=manamana
zwróci wyniki wyszukiwania słowa „manamana” w formacie JSON.
JSON
• JSON, JavaScript Object Notation – format wymiany danych komputerowych. JSON jest formatem tekstowym, będącym podzbiorem języka JavaScript.
• JSON jest jednym z nieformalnych sposobów przekazywania danych do aplikacji opartych o AJAX. W typowych przypadkach dane w formacie JSON są pobierane z serwera jako tekst przy wykorzystaniu obiektu XMLHttpRequest języka JavaScript, a następnie przekształcane w obiekt.