fast_cgi
1.0.0
fast_cgi::responder )fast_cgi::filter )fast_cgi::authorizer요구 사항 :
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 모든 역할은 output() 에 의해 출력 스트림, error() 에 의한 오류 스트림 및 params() 의 요청 매개 변수를 제공합니다. 웹 서버의 모든 수신 요청에 대해 새로운 역할 인스턴스가 생성됩니다. 각 유형에 대해 하나의 사용자 특정 역할 만 통합 할 수 있습니다. 통합은 다음과 같습니다.
protocol.set_role<my_responder>();다음 역할에 대한 자세한 정의는 여기에서 찾을 수 있습니다.
fast_cgi::responder ) 응답자는 추가로 input() 에 의해 광학 입력을받습니다. 이 역할은 간단한 CGI/1.1 프로그램과 동일한 목적을 가지고 있습니다 (아마도 원하는 것일 것입니다). 간단한 인사, 세상은 다음과 같이 보일 수 있습니다.
# 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 ;
}
};자세한 내용은 여기를 참조하십시오.
fast_cgi::filter )여기를 참조하십시오.
fast_cgi::authorizer여기를 참조하십시오.
매개 변수는 다음과 같이 반복 할 수 있습니다.
for ( auto & parameter : params()) {
std::cout << parameter. first << " = " << parameter. second << " n " ;
} 매개 변수 가져 오기 (이 예제는 키가 존재하지 않으면 std::out_of_range 예외를 던질 수 있습니다) :
auto & value = params()[ " REQUEST_URI " ];
// or
auto & value = params( " REQUEST_URI " );매개 변수를 사용할 수 있는지 확인하십시오.
auto has_uri = params().has( " REQUEST_URI " );MIT 라이센스