ASP
.NET - Pesquisando livros usando a API Google Search
Neste artigo vamos mostrar como criar uma pequena aplicação ASP .NET para localizar livros usando Google Search API.
Para poder usar este recurso vamos ter que baixar a API Google Search : GoogleSearchAPI.dll
Você pode usar este link para obter essa API: http://google-api-for-dotnet.googlecode.com/files/GoogleSearchAPI_0.3.1.zip
Requisitos:
Objetivos
Localizar e exibir livros, revistas e artigos em uma página ASP .NET usando a API Google Search.
Criando o projeto no Visual Studio 2012 Express for web
Abra o Visual Studio 2012 Express for web e clique em New WebSite;
A seguir selecione o template Visual C# -> Web -> ASP .NET Empty Web Site, informe o nome ProcurandoLIvrosGoogle e clique em OK;
![]() |
A seguir copie o arquivo GoogleSearchAPI.dll para a basta bin do web site.
Após isso no menu WEBSITE clique em Add New Item e selecione o template Web Form informando o nome LocalizarLivros.aspx;
Selecione o web form criado e no modo Design inclua a partir da ToolBox os seguintes controles na página:
O leiaute da página visto a seguir:
![]() |
O código da página LocalizarLivros.aspx no modo Source é visto abaixo:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="LocalizarLivros.aspx.cs" Inherits="BookSearch" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:HyperLink ID="hplnkmacoratti" runat="server" Font-Size="Large" NavigateUrl="http://www.macoratti.net">Macoratti.net</asp:HyperLink> <br /> <asp:TextBox ID="txtLivro" runat="server" Width="300px"></asp:TextBox> <asp:Button ID="btnLocalizar" runat="server" Text="Procurar Livros no Google" OnClick="btnLocalizar_Click" /><br /> <asp:DataList ID="dlLocalizar" runat="server" RepeatColumns="6" CellSpacing="5"> <ItemTemplate> <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%#Eval("Url") %>'><img src='<%#Eval("Image") %>' width="120px" height="170px"/></asp:HyperLink><br /> <asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl='<%#Eval("Url") %>'><%#Eval("Title")+"("+Eval("Year")+")" %></asp:HyperLink> <asp:Label ID="Label1" runat="server" Text='<%#Eval("Author")+"(Pags:"+Eval("Page")+")" %>'></asp:Label> </ItemTemplate> <ItemStyle Width="250px" /> </asp:DataList> </div> </form> </body> </html> |
Agora abra o arquivo code-behind LocalizarLivros.aspx.cs e defina os seguintes namespaces :
using
System;
using System.Collections.Generic;
using Google.API.Search;
using System.Data;
Agora abra o arquivo code-behind LocalizarLivros.aspx.cs e defina o código abaixo no evento Load da página:
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { dlLocalizar.DataSource = null; dlLocalizar.DataBind(); txtLivro.Text = ""; } } |
Digite o código abaixo no evento Click do botão de comando btnLocalizar:
protected void btnLocalizar_Click(object sender, EventArgs e) { DataSet ds = new DataSet(); DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("Title", typeof(string))); dt.Columns.Add(new DataColumn("Author", typeof(string))); dt.Columns.Add(new DataColumn("Url", typeof(string))); dt.Columns.Add(new DataColumn("Image", typeof(string))); dt.Columns.Add(new DataColumn("Year", typeof(string))); dt.Columns.Add(new DataColumn("Page", typeof(string))); GbookSearchClient cliente = new GbookSearchClient("www.macoratti.net"); IList<IBookResult> resultados = cliente.Search(txtLivro.Text, 30); foreach (IBookResult resultado in resultados) { DataRow dr = dt.NewRow(); dr["Title"] = resultado.Title.ToString(); dr["Author"] = resultado.Authors.ToString(); dr["Image"] = resultado.TbImage; dr["Url"] = resultado.Url.ToString(); dr["Year"] = resultado.PublishedYear.ToString(); dr["Page"] = resultado.PageCount.ToString(); dt.Rows.Add(dr); } dlLocalizar.DataSource = dt; dlLocalizar.DataBind(); } } |
O código acima define um dataset e um datatable com uma estrutura para receber informações sobre : titulo, autor, url, imagem ano e página de um livro.
Após usar a API Google Search para realizar a busca guardamos o resultado em um
Observe que na pesquisa eu estou definido "www.macoratti.net" como o cliente, pois foi necessário um website hospedado para fins de segurança.
GbookSearchClient cliente = new GbookSearchClient("www.macoratti.net");
Se você informar algo aqui irá ocorrer uma exceção.
Na outra linha de código : IList<IBookResult> resultados = cliente.Search(txtLivro.Text, 30);
Eu estou passando o parâmetro 30 e o texto informado no TextBox. O valor 30 indica que quero obter até 30 resultados na pesquisa.
O resultado esta sendo armazenado em um IList<> que representa uma coleção de objetos não genéricos que podem ser acessados individualmente pelo índice.
Concluindo estamos usando um laço foreach para percorre a coleção e popular o DataTable atribuindo o resultado ao controle DataList - dlLocalizar.
Executando o web site e digitando Visual Basic na caixa de texto da página, ao clicar no botão - Procurar Livros no Google - teremos o seguinte resultado:
![]() |
Pegue o projeto completo aqui:
ProcurandoLivrosGoogle.zip
João 14:21
Aquele que tem os meus mandamentos e os guarda, esse é o que me ama; e aquele que me ama será amado de meu Pai, e eu o amarei, e me manifestarei a ele.Referências: