Introdução
Neste tutorial, você aprenderá como desenvolver aplicações web utilizando o Xojo, um ambiente de desenvolvimento integrado que facilita a criação de software multiplataforma. Vamos focar na integração do Xojo Server com APIs RESTful e Banco de Dados SQLite. Este guia é ideal para programadores e desenvolvedores que desejam explorar as capacidades do Xojo, proporcionando uma base sólida para construir projetos web interativos e eficientes. Ao longo do tutorial, abordaremos desde a configuração do ambiente, passando pela criação de uma API RESTful, até a integração com um banco de dados SQLite, além de práticas recomendadas para testes e implementação das aplicações.
Etapas
Configuração do Ambiente Xojo
Para começar, você deve instalar o Xojo e garantir que tenha acesso à versão mais recente. Acesse o site oficial do Xojo para baixar e instalar. Após a instalação, inicie a IDE do Xojo e crie um novo projeto do tipo Web.
commands// Abra a IDE do Xojo e crie um novo projeto do tipo "Web".Criação de um Banco de Dados SQLite
Dentro do seu projeto Xojo, crie um novo banco de dados SQLite. Você pode fazer isso usando o SQLite Manager ou qualquer outra ferramenta de gerenciamento de bancos de dados. Após criar o banco, adicione uma tabela chamada ‘produtos’ com as colunas id (Integer), nome (Text) e preco (Real).
sqlCREATE TABLE produtos (id INTEGER PRIMARY KEY AUTOINCREMENT, nome TEXT, preco REAL);Implementando a Conexão com SQLite
No seu projeto Xojo, adicione um novo módulo para lidar com a conexão ao banco de dados. Utilize a classe SQLiteDatabase para realizar a conexão e executar comandos SQL.
DatabaseModule.xojo_moduleVar db as New SQLiteDatabase If Not db.Connect("Data/mydatabase.sqlite") Then MsgBox("Erro ao conectar: " + db.ErrorMessage) End IfCriando a API RESTful
Adicione um novo arquivo de Script no seu projeto para implementar a API RESTful. Neste script, você irá expor métodos que irão interagir com o banco de dados, como GET para obter produtos e POST para criar novos produtos.
ApiHandler.xojo_scriptSub HandleRequest(request As WebRequest, response As WebResponse) Select Case request.HTTPMethod Case "GET" GetProdutos(response) Case "POST" CreateProduto(request, response) End Select End Sub Sub GetProdutos(response As WebResponse) // Implementação para obter produtos End Sub Sub CreateProduto(request As WebRequest, response As WebResponse) // Implementação para criar produto End SubImplementando o Método de Obtenção de Produtos
No método GetProdutos, você irá consultar a tabela ‘produtos’ e retornar os dados em formato JSON. Utilize a classe JSONItem do Xojo para facilitar essa implementação.
GetProdutos.methodVar sql As String = "SELECT * FROM produtos" Var rs As RecordSet = db.SQLSelect(sql) Dim json As New JSONItem While Not rs.EOF Var produto As New JSONItem produto.Value("id") = rs.Field("id").IntegerValue produto.Value("nome") = rs.Field("nome").StringValue produto.Value("preco") = rs.Field("preco").RealValue json.AddItem(produto) rs.MoveNext Wend response.Body = json.ToStringImplementando o Método de Criação de Produto
No método CreateProduto, você irá recuperar os dados do produto enviados pelo cliente e inseri-los na tabela ‘produtos’. Certifique-se de manipular corretamente as exceções.
CreateProduto.methodDim json As JSONItem json = New JSONItem(request.Body) Var produtoNome As String = json.Value("nome") Var produtoPreco As Double = json.Value("preco") Var sql As String = "INSERT INTO produtos (nome, preco) VALUES (?, ?)" Var stmt As SQLitePreparedStatement = db.Prepare(sql) stmt.BindType(0, SQLitePreparedStatement.SQLITE_TEXT) stmt.Bind(0, produtoNome) stmt.BindType(1, SQLitePreparedStatement.SQLITE_REAL) stmt.Bind(1, produtoPreco) stmt.SQLExecute()Testando a Aplicação com Insomnia
Utilize o Insomnia ou Postman para testar os endpoints da sua API. Faça requisições para obter e criar produtos, verificando a resposta e o funcionamento do banco de dados.
curl_examples# Para listar todos os produtos
GET http://localhost:8080/api/produtos
# Para criar um novo produto
POST http://localhost:8080/api/produtos
Content-Type: application/json
Body: {"nome": "Produto 1", "preco": 99.99}Implementação de Testes da API
Crie testes unitários para garantir que sua API funcione como esperado. Utilize a framework de testes apropriada do Xojo e escreva testes para cada endpoint da sua API.
TestApi.xojo_testSub TestGetProdutos() // Código para testar o método GetProdutos End Sub Sub TestCreateProduto() // Código para testar o método CreateProduto End SubExecutando a Aplicação Web
Compile e execute sua aplicação Xojo com o Xojo Server. Acesse o servidor local no seu navegador e teste os endpoints implementados. Verifique o funcionamento do banco de dados SQLite.
commands// Compile e inicie o servidor Xojo.
// Acesse http://localhost:8080 no navegador.
Conclusão
Neste tutorial, você aprendeu a desenvolver uma aplicação web usando o framework Xojo. Começamos com a configuração do ambiente, avançamos na criação de uma API RESTful e na integração com um banco de dados SQLite. Através de exemplos práticos, você foi guiado em cada etapa do processo, desde a construção da API até a implementação de testes. Com essas habilidades, você pode agora expandir suas aplicações web e explorar mais recursos que o Xojo oferece, sendo capaz de criar soluções robustas e eficientes.
