This is returned from the endpoint object when the request is received and contains all the information needed to determine the client request and return a response.
An application can use this class and associated classes by themselves to return a response. Alternatively, the resource class and functions may be employed to provide a REST framework for locating a resource and applying the method to it.
For clients that cannot create PUT
or DELETE
HTTP requests a POST
request with query params (values ignored) of restPUT
and restDELETE
are interpreted as such with the method object adjusted accordingly.
Example code:
#include <restcgi/endpoint.h> #include <restcgi/method.h> using namespace restcgi; ... method::pointer m = endpoint::create()->receive(); if (m->e() == method_e::GET) ...
Public Types | |
typedef boost::shared_ptr< method > | pointer |
shared ptr | |
typedef boost::shared_ptr< const method > | const_pointer |
const shared ptr | |
typedef restcgi::env | env_type |
env type | |
typedef restcgi::endpoint | endpoint_type |
endpoint type | |
typedef boost::shared_ptr< endpoint_type > | endpoint_pointer |
shared endpoint ptr | |
typedef restcgi::icontent | icontent_type |
iconent type | |
typedef restcgi::ocontent | ocontent_type |
oconent type | |
typedef boost::shared_ptr< icontent_type > | icontent_pointer |
shared icontent ptr | |
typedef boost::shared_ptr< ocontent_type > | ocontent_pointer |
shared ocontent ptr | |
typedef restcgi::request_hdr | request_hdr_type |
request header type | |
typedef restcgi::response_hdr | response_hdr_type |
response header type | |
typedef uripp::path | uri_path_type |
URI path type. | |
typedef uripp::query | uri_query_type |
URI query type. | |
Public Member Functions | |
const method_e & | e () const |
Get method enumeration. | |
const uri_path_type & | uri_path () const |
Get URI path. | |
const uri_query_type & | uri_query () const |
Get URI query. | |
const request_hdr_type & | request_hdr () const |
Get request header. | |
icontent_pointer | icontent () const |
Get input content stream. | |
ocontent_pointer | ocontent () const |
Get output content stream (must respond first). | |
void | respond (const status_code_e &sc=status_code_e::OK, const response_hdr_type &rh=response_hdr_type()) |
Send the response header, no content will be sent. | |
ocontent_pointer | respond (const content_hdr &ch, const status_code_e &sc=status_code_e::OK, const response_hdr_type &rh=response_hdr_type()) |
Send the response and content header and create the stream for sending the content itself. | |
bool | responded () const |
Test if responded. | |
const env_type & | env () const |
Get environment. | |
endpoint_pointer | endpoint () const |
Get endpoint. | |
Static Public Attributes | |
static const char | QP_REST_PUT [8] |
query param for PUT method ("restPUT") | |
static const char | QP_REST_DELETE [11] |
query param for DELETE method ("restDELETE") | |
Friends | |
class | endpoint |
ocontent_pointer restcgi::method::respond | ( | const content_hdr & | ch, | |
const status_code_e & | sc = status_code_e::OK , |
|||
const response_hdr_type & | rh = response_hdr_type() | |||
) |
Send the response and content header and create the stream for sending the content itself.
std::domain_error | if already responded |
void restcgi::method::respond | ( | const status_code_e & | sc = status_code_e::OK , |
|
const response_hdr_type & | rh = response_hdr_type() | |||
) |
Send the response header, no content will be sent.
std::domain_error | if already responded |
const uri_path_type& restcgi::method::uri_path | ( | ) | const [inline] |
Get URI path.
This is the path starting after the CGI script name, i.e. it is the env::path_info().