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