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

  1. 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".

  2. 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).

    sql
    CREATE TABLE produtos (id INTEGER PRIMARY KEY AUTOINCREMENT, nome TEXT, preco REAL);

  3. 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_module
    Var db as New SQLiteDatabase
    
    If Not db.Connect("Data/mydatabase.sqlite") Then
      MsgBox("Erro ao conectar: " + db.ErrorMessage)
    End If

  4. 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_script
    Sub 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

  5. 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.method
    Var 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

  6. 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.method
    Dim 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()

  7. 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}

  8. 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_test
    Sub TestGetProdutos()
      // Código para testar o método GetProdutos
    End Sub
    
    Sub TestCreateProduto()
      // Código para testar o método CreateProduto
    End Sub

  9. 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.

Hashtags

#Xojo #WebDevelopment #RESTfulAPI #SQLite #SoftwareDevelopment