O Rest -Late é um modelo de programação abrangente e consistente para a criação de aplicativos que requerem comunicação perfeita e segura sobre o HTTP, com a capacidade de modelar uma gama de processos de negócios, projetados para segmentar ambientes móveis, tablets, desktop e incorporados.
É semelhante a incorporar o NGINX na linha de produtos de suas empresas. - Solutions Architect, Bellrock Technology
| Recurso | Descrição |
|---|---|
| WebSockets | Canais de comunicação complexos duplex em uma única conexão TCP. |
| Eventos enviados ao servidor | Os eventos enviados ao servidor permitem o streaming eficiente de dados de eventos baseados em texto-EG, notificações ou atualizações em tempo real geradas no servidor. |
| Cometa | Modelo de pesquisa longa para permitir solicitações HTTP de longa data para empurrar dados do servidor para o cliente. |
| SSL/TLS | Segure a comunicação de arame, permitindo que você transmita dados privados online. |
| Gerenciamento de sessão | Crie persistência de sessão HTTP personalizada e lógica de gerenciamento. |
| HTTP Pipelining | Uma técnica que permite que várias solicitações HTTP sejam enviadas em uma única conexão TCP sem esperar pelas respostas correspondentes. |
| Parâmetros do caminho | Anotar URIs com parâmetros de caminho personalizado, como chaves de recursos, revisões, etc ... |
| Parâmetros de consulta | Parâmetros de consulta automatizada Parsing. |
| Filtros de cabeçalho | Filtre solicitações HTTP de entrada por cabeçalhos. |
| Log | Personalize como e onde as entradas de log são criadas. |
| Recursos de vários caminhos | Dê a um recurso vários caminhos para melhorar a legibilidade. |
| Métodos personalizáveis | Adicione seus próprios métodos HTTP personalizados. |
| Compressão | Adaptabilidade para abordar qualquer forma de compressão GZIP, esvaziar, etc ... |
| Codificação | Adaptabilidade para abordar qualquer forma de codificação UTF-32, ASCII, etc ... |
| Motor de regras | Reduza a complexidade, processando solicitações recebidas com unidades legíveis de código. |
| Http/https | Recursos de cliente incorporados com verificação opcional de certificado de pares SSL. Descontinuado |
| IPv4/IPv6 | Internet Protocol Versão 4/6 Suporte de rede. |
| Arquitetura | Arquitetura única ou multithread assíncrona, capaz de resolver o problema C10K. |
| Conversores | Caminho interno, consulta e conversões de cabeçalho para os tipos de dados primários. |
| Autenticação | Autenticação de nível e/ou nível de recurso separado. |
| Manuseio de erros | Separe o manuseio de erros de serviço e/ou nível de recurso. |
| Endereço de ligação | Ligue os serviços HTTP e/ou HTTPS para separar endereços IP. |
| Manuseio de sinal | Capture os sinais de processo gerados por sistema operacional. |
| Documentação | Documentação de alta qualidade, cobrindo a arquitetura e a API. |
| Conformidade | Flexibilidade para lidar com o HTTP 1.0/1.1+ Conformidade. |
| Maduro | Seguro, estável e extensivamente testado desde 2013. |
| Comunidade | Comunidade de código aberto ativo, vibrante e enérgico. |
| Apoiar | O suporte comercial está disponível na Corvusaft. |
# include < memory >
# include < cstdlib >
# include < restbed >
using namespace std ;
using namespace restbed ;
void post_method_handler ( const shared_ptr< Session > session )
{
const auto request = session-> get_request ( );
int content_length = request-> get_header ( " Content-Length " , 0 );
session-> fetch ( content_length, [ ]( const shared_ptr< Session > session, const Bytes & body )
{
fprintf ( stdout, " %.*s n " , ( int ) body. size ( ), body. data ( ) );
session-> close ( OK, " Hello, World! " , { { " Content-Length " , " 13 " } } );
} );
}
int main ( const int , const char ** )
{
auto resource = make_shared< Resource >( );
resource-> set_path ( " /resource " );
resource-> set_method_handler ( " POST " , post_method_handler );
auto settings = make_shared< Settings >( );
settings-> set_port ( 1984 );
settings-> set_default_header ( " Connection " , " close " );
Service service;
service. publish ( resource );
service. start ( settings );
return EXIT_SUCCESS;
}Exemplos mais detalhados podem ser encontrados aqui. Para ver o Restado usado com raiva, visite o projeto RESTQ da Corvusaft.
© 2013-2020 Corvusoft Limited, Reino Unido. Todos os direitos reservados.
A estrutura de repouso é licenciada dupla; Consulte a licença para obter detalhes completos.
Entre em contato com [email protected], para obter opções de suporte e licenciamento, incluindo desenvolvimento de software sob medida, teste, consulta de design, treinamento, orientação e revisão de código.
Envie todas as aprimoramentos, propostas e defeitos por meio do rastreador de problemas; Como alternativa, faça uma pergunta no StackOverflow Tagged #Restbed.
git clone --recursive https://github.com/corvusoft/restbed.git
mkdir restbed/build
cd restbed/build
cmake [-DBUILD_SSL = NO] [-DBUILD_TESTS = NO] ..
make install
make testAgora você encontrará todos os componentes necessários instalados no sub-folder de distribuição.
| Opção | Descrição | Padrão |
|---|---|---|
| Build_ssl | Ativar suporte SSL/TLS. | Habilitado |
| Build_ipc | Ativar soquetes de domínio UNIX. | Desabilitado |
| Build_tests | Construir suítes de teste de projeto. | Habilitado |
| Build_devel_package | Instale os cabeçalhos em cmake_install_prefix. | Habilitado |
| Build_shared_library | Produzir uma construção compartilhada de repouso. | Habilitado |
| Build_static_library | Produzir uma construção estática de repouso. | Habilitado |
Pré -requisitos: Visual Studio 2022, Cmake, Git, Perl.
Usando o prompt de comando de ferramentas nativas x64 começar, se necessário, construir o OpenSSL.
git clone --recursive https://github.com/corvusoft/restbed.git
cd restbeddependencyopenssl
perl Configure [no-]shared
nmake
nmake testSe você selecionou para usar a compilação OpenSSL padrão (compartilhada), precisará incluir o caminho de instalação em seu ambiente.
set PATH = restbeddependencyopenssl; %PATH%Se você selecionou para usar o estático OpenSSL Build (não compartilhado), precisará incluir dependências adicionais ao vincular seu código de aplicativo; Consulte o projeto OpenSSL para obter detalhes futer.
target_link_libraries( my_microservice restbed-static.lib ws2_32.lib advapi32.lib crypt32.lib gdi32.lib user32.lib )Agora prossiga com as seguintes instruções de construção de restrição.
mkdir restbedbuild
cd restbedbuild
cmake -G " Visual Studio 17 2022 " [-DBUILD_SSL=NO] [-DBUILD_TESTS=NO] ..
cmake --build . --target ALL_BUILD --config Release
ctestPara as instruções do Microsoft Visual Studio 14 2015 e mais detalhes, consulte o recurso nº 17.
Você pode fazer o download e instalar o RESTBED usando o gerenciador de dependência VCPKG:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install restbedA porta de repouso no VCPKG é mantida atualizada pelos membros da equipe da Microsoft e pelos colaboradores da comunidade. Se a versão estiver desatualizada, crie uma solicitação de problema ou puxe no repositório VCPKG.
Esta base de código pretende ser o mais autocumenting possível. Fornecemos muitos exemplos e suítes de teste para ajudar os desenvolvedores.
Você pode localizar o design mais recente e a documentação da API aqui.
| Recurso | Exigência |
|---|---|
| Compilador | C ++ 14 compatível ou acima |
| OS | BSD, Linux, Mac OSX, Windows, Raspbian |
| Marco | Recurso | Status |
|---|---|---|
| 0,0 | Serviço HTTP assíncrono | completo |
| 1.0 | HTTP 1.0 Conformidade | completo |
| 2.0 | HTTP 1.1 Conformidade | completo |
| 2.5 | Camada de soquete segura | completo |
| 2.5 | Portas de rede simultâneas (http/https) | completo |
| 3.0 | Motor de regras | completo |
| 3.5 | Agendar tarefas no circuito de serviço | completo |
| 3.5 | Capacidade de serviço com vários threads | completo |
| 3.5 | Vincular o serviço a um endereço específico | completo |
| 3.5 | Gerenciamento de sessão | completo |
| 4.0 | Cliente http | completo |
| 4.0 | Manuseio de sinal | completo |
| 4.5 | Documentação da API | completo |
| 4.5 | Soquetes da web | completo |
| 5.0 | Certificados SSL do lado do cliente | desenvolvimento |
| 5.0 | Cache de recursos | desenvolvimento |
| 5.0 | Modificações de tempo de execução | desenvolvimento |
| 5.0 | HTTP 2 Conformidade | desenvolvimento |
| 5.0 | Refatorar, reduzir, reutilizar | ativo |
| Método | Descrição |
|---|---|
| Tweet -nos suas perguntas e solicitações de recursos. | |
| [email protected] | Suporte consultas relacionadas. |
| [email protected] | Consultas relacionadas à venda. |