fast_cgi::responder )fast_cgi::filter )fast_cgi::authorizer )Anforderungen:
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 Jede Rolle wird durch output() , einen Fehlerstrom nach error() und Anforderungsparametern nach params() bereitgestellt. Für jede eingehende Anfrage des Webservers wird eine neue Rolleninstanz erstellt. Für jeden Typ kann nur eine benutzerspezifische Rolle integriert werden. Die Integration kann so aussehen:
protocol.set_role<my_responder>();Eine detaillierte Definition der folgenden Rollen finden Sie hier.
fast_cgi::responder ) Ein Responder erhält zusätzlich optinale Eingabe durch input() . Diese Rolle hat den gleichen Zweck wie einfache CGI/1.1 -Programme (dies ist wahrscheinlich das, was Sie wollen). Ein einfaches Hallo, die Welt könnte so aussehen:
# 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 ;
}
};Weitere Informationen finden Sie hier.
fast_cgi::filter )Siehe hier.
fast_cgi::authorizer )Siehe hier.
Parameter können iteriert werden wie:
for ( auto & parameter : params()) {
std::cout << parameter. first << " = " << parameter. second << " n " ;
} Erhalten eines Parameters (dieses Beispiel kann eine std::out_of_range -Ausnahme auswerfen, wenn der Schlüssel nicht existiert):
auto & value = params()[ " REQUEST_URI " ];
// or
auto & value = params( " REQUEST_URI " );Überprüfen Sie, ob ein Parameter verfügbar ist:
auto has_uri = params().has( " REQUEST_URI " );MIT -Lizenz