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: 8.146 ]

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

Aplicativos web em C++ usando o Tufão

DotGNU: a resposta Open Source ao dotNET

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

Linguagem C - Listas Duplamente Encadeadas

Desenvolvendo um plugin de visualização para o XMMS (Parte 1)

  
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