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: