fast_cgi::responder )fast_cgi::filter )fast_cgi::authorizer )Requisitos:
git clone https://github.com/terrakuh/fast_cgi.git
cd fast_cgi
git submodule init
git submodule update
mkdir build
cd build
cmake ..
# cmake -DFAST_CGI_BUILD_EXAMPLES=OFF
# cmake -DFAST_CGI_ENABLE_LOGGING=OFF
cmake --build .
cmake --build . --target install Cada rol se proporciona una secuencia de salida por output() , un flujo de error por error() y los parámetros de solicitud por params() . Para cada solicitud entrante del servidor web se crea una nueva instancia de roles. Solo se puede integrar un rol específico del usuario para cada tipo. La integración puede verse así:
protocol.set_role<my_responder>();Aquí se puede encontrar una definición detallada de los siguientes roles.
fast_cgi::responder ) Un respondedor también recibe entrada optinal por input() . Este rol tiene el mismo propósito que los simples programas CGI/1.1 (esto es probablemente lo que desea). Un simple saludo, el mundo puede verse así:
# include < fast_cgi/fast_cgi.hpp >
class hello_world : public fast_cgi ::responder
{
public:
status_code_type run () override
{
using namespace fast_cgi ::manipulator ;
output () << " Content-type: text/html " << feed << feed;
output () << " <html><body> "
<< " <h1> " << " Hello, World! " << " </h1><br/><br/> "
<< " <span>Here are all parameters:</span><br/> " ;
// Print all parameters
for ( auto & i : params ()) {
output () << i. first << " = " << i. second << " <br/> " ;
}
output () << " <span>Your payload:</span><br/> " ;
output () << input (). rdbuf ();
output () << " </body></html> "
return 0 ;
}
};Se puede encontrar más información aquí.
fast_cgi::filter )Ver aquí.
fast_cgi::authorizer )Ver aquí.
Los parámetros se pueden iterar como:
for ( auto & parameter : params()) {
std::cout << parameter. first << " = " << parameter. second << " n " ;
} Obtener un parámetro (este ejemplo puede lanzar una excepción std::out_of_range si la clave no existe):
auto & value = params()[ " REQUEST_URI " ];
// or
auto & value = params( " REQUEST_URI " );Comprobación de si hay un parámetro disponible:
auto has_uri = params().has( " REQUEST_URI " );Licencia de MIT