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 If
Criando 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 Sub
Implementando 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.ToString
Implementando 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 Sub
Executando 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.