Criando aplicações RESTful com Qt e Cutelyst

Web, C++, Qt e REST uma combinação perfeita. Veja como desenvolver um servidor e cliente RESTful, campeões de desempenho.

[ Hits: 7.714 ]

Por: Daniel Nicoletti em 22/03/2018 | Blog: http://dantti.wordpress.com


Introdução



Esse mini tutorial tem como objetivo mostrar os fundamentos da criação de uma aplicação RESTful com Qt, como cliente e como servidor com o auxilio do Cutelyst.

Serviços com APIs REST se tornaram muito populares nos últimos anos, e interagir com eles pode ser necessário para integrar com serviços e manter sua aplicação relevante, assim como pode ser interessante substituir seu protocolo próprio com uma implementação REST.

REST é muito associado a JSON, porém, para um serviço se caracterizar REST não é necessário utilizar JSON. A forma como os dados são trocados é escolhida por quem define a API, ou seja é possível ter REST trocando mensagens em XML ou outro formato.

Iremos utilizar JSON por sua popularidade, simplicidade e devido a classe QJsonDocument ser presente no módulo Core do Qt.

Um serviço REST é caracterizado principalmente por fazer uso dos métodos e cabeçalhos (headers) pouco utilizados do HTTP, navegadores utilizam basicamente GET para obter dados e POST para enviar dados de formulários e arquivos, porém clientes REST farão uso de métodos como DELETE, PUT e HEAD, se tratando de cabeçalhos muitas APIs definem cabeçalhos para autenticação, por exemplo, X-Applicativo-Token pode conter uma chave gerada apenas para o aplicativo de um usuário X, de forma que se esse cabeçalho não contiver os dados corretos ele não terá acesso aos dados.

Vamos começar definindo a API do servidor:
  • /api/v1/usuarios

    GET - Obtém a lista de usuários
    Resposta: [ "uuid1", "uuid2" ]

    POST - Cadastra novo usuário
    Envie: { "nome": "fulano", "idade": 32 }
    Resposta: { "status": "ok/erro", "uuid": "uuid do novo usuário", "erro": "msg em caso de erro" }

  • /api/v1/usuarios/<UUID> - onde UUID deve ser substituído pelo UUID do usuário

    GET - Obtém informações do usuário
    Resposta: { "nome": "fulano", "idade": 32 }

    PUT - Atualiza informações do usuário
    Envie: { "nome": "fulano de tal", "idade": 57 }
    Resposta: { "status": "ok/erro", "erro": "msg em caso de erro" }

    DELETE - Apaga o usuário
    Resposta: { "status": "ok/erro", "erro": "msg em caso de erro" }

Por motivos de simplicidade, iremos armazenar os dados utilizando QSettings. Não recomendo para aplicações reais, mas foge do escopo utilizar SQL ou algo do tipo.

Também assumimos que já tem o Qt e o Cutelyst instalados, o código estará disponível em: https://github.com/ceciletti/example-qt-cutelyst-rest

    Próxima página

Páginas do artigo
   1. Introdução
   2. Parte 1 - Servidor RESTful com C++, Cutelyst e Qt
   3. Parte 2 - Aplicação cliente REST
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Biblioteca VBMcgi: Crie aplicações Web CGI em C++ com acesso ao banco Interbase/Firebird sem mistério

Aplicativos web em C++ usando o Tufão

DotGNU: a resposta Open Source ao dotNET

Desenvolvendo para microcontroladores em GNU/Linux

Cuidado com números em Ponto Flutuante

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts