Qore RestSchemaValidator Module Reference
2.1.1
|
null REST validator; no schema is used but default serialization and deserialization is performed More...
Public Member Methods | |
bool | managesUriPath () |
returns True if the provider manages the URI path More... | |
Public Member Methods inherited from RestSchemaValidator::AbstractRestSchemaValidator | |
string | getBasePath () |
returns the base path prefix for all requests in this schema More... | |
DataProvider::AbstractDataProvider | getDataProvider (HTTPClient rest) |
returns a data provider object for this connection, if supported by any REST schema validator object More... | |
hash< RestExampleRequestInfo > | getExampleRequest (string method, string path, *softlist< string > content_types) |
returns a hash of example message information for the given request More... | |
hash< RestExampleResponseInfo > | getExampleResponse (string method, string path, int code, *softlist< string > content_types) |
returns a hash of example message information for the given request More... | |
string | getHash () |
returns a unique hash for the schema that can be used to compare schemas More... | |
hash< string, list< string > > | getPathOperationHash () |
returns a hash of URI paths as keys with values as lists of supported HTTP methods More... | |
hash< RestQoreExampleCodeInfo > | getQoreExampleRequest (string method, string path) |
returns a hash of example Qore code for the given request More... | |
hash< RestQoreExampleCodeInfo > | getQoreExampleResponse (string method, string path, int code) |
returns example Qore code for the given response More... | |
string | getTargetUrl () |
returns the target URL for the schema More... | |
bool | managesUriPath () |
returns True if the provider manages the URI path More... | |
hash< RestRequestServerInfo > | parseRequest (string method, string path, *data http_body, reference< hash< auto >> headers) |
processes and parses a client request and returns the deserialized message body (if any) More... | |
hash< RestResponseClientInfo > | parseResponse (string method, string path, int code, *data response_body, hash< auto > hdr) |
parses and validates the response from the server and returns a hash of the processed info More... | |
hash< RestRequestClientInfo > | processRequest (string method, string path, auto body, *hash< auto > headers, *softlist< string > content_types) |
processes a client-side REST request and returns a hash that can be used to make the outgoing client-side HTTP request More... | |
hash< HttpResponseInfo > | processResponse (string method, string path, int code, auto response_body, *hash< auto > headers, *softlist< string > content_types) |
processes a REST response with a serialized message body, validates any response data against schema definitions if possible More... | |
setBasePath (string basePath) | |
overrides the basePath value More... | |
Public Attributes | |
const | DataDeserializationSupport = ... |
Data deserialization support MIME types to codes and de/serialization functions. | |
const | DataSerializationSupport = ... |
Data serialization support mapping codes to MIME types and de/serialization functions. | |
const | NullSchemaHashStr = "<null rest schema>" |
a unique hash for the null schema More... | |
Private Member Methods | |
string | getBasePathImpl () |
returns the base path prefix for all requests in this schema More... | |
hash< RestExampleRequestInfo > | getExampleRequestImpl (string method, string path, *softlist< string > content_types) |
returns a hash of example message information for the given request More... | |
hash< RestExampleResponseInfo > | getExampleResponseImpl (string method, string path, int code, *softlist< string > content_types) |
returns a hash of example message information for the given request More... | |
string | getHashImpl () |
returns a unique hash for the schema that can be used to compare schemas More... | |
hash< string, list< string > > | getPathOperationHashImpl () |
returns a hash of URI paths as keys with values as lists of supported HTTP methods More... | |
hash< RestQoreExampleCodeInfo > | getQoreExampleRequestImpl (string method, string path) |
returns a hash of example Qore code for the given request More... | |
hash< RestQoreExampleCodeInfo > | getQoreExampleResponseImpl (string method, string path, int code) |
returns example Qore code for the given response More... | |
string | getTargetUrlImpl () |
returns the target URL for the schema More... | |
hash< RestRequestServerInfo > | parseRequestImpl (string method, string path, *data http_body, reference< hash > headers) |
processes and parses a client request and returns the deserialized message body (if any) More... | |
hash< RestResponseClientInfo > | parseResponseImpl (string method, string path, int code, *data response_body, hash< auto > hdr) |
parses and validates the response from the server and returns a hash of the processed info More... | |
hash< RestRequestClientInfo > | processRequestImpl (string method, string path, auto body, *hash< auto > headers, *softlist< string > content_types) |
processes a client-side REST request and returns a hash that can be used to make the outgoing client-side HTTP request More... | |
hash< HttpResponseInfo > | processResponseImpl (string method, string path, int code, auto response_body, *hash< auto > headers, *softlist< string > content_types) |
processes a REST response with a serialized message body, validates any response data against schema definitions if possible More... | |
setBasePathImpl (string basePath) | |
overrides the basePath value More... | |
Private Member Methods inherited from RestSchemaValidator::AbstractRestSchemaValidator | |
DataProvider::AbstractDataProvider | getDataProviderImpl (HTTPClient rest) |
returns a data provider object for this connection, if supported by any REST schema validator object More... | |
abstract hash< HttpResponseInfo > | processResponseImpl (string method, string path, int code, any response_body, *hash< auto > headers, *softlist< string > content_types) |
processes a REST response with a serialized message body, validates any response data against schema definitions if possible More... | |
Private:Internal Member Methods | |
bool | checkResponseContentTypeHeader (reference< hash< HttpResponseInfo >> resp, auto body, *hash< auto > headers, *softlist< string > content_types) |
Check if the headers contain a content-type header which is accepted and if so, modify the response hash. More... | |
null REST validator; no schema is used but default serialization and deserialization is performed
|
private:internal |
Check if the headers contain a content-type header which is accepted and if so, modify the response hash.
resp | response hash |
body | response body data (if any) |
headers | HTTP headers to include in the response |
content_types | the accepted MIME types in order of preference |
Content-Type
header and the rv was modifiedContent-Type
headers, then False is returned and response is not modified
|
privatevirtual |
returns the base path prefix for all requests in this schema
Implements RestSchemaValidator::AbstractRestSchemaValidator.
|
privatevirtual |
returns a hash of example message information for the given request
method | the HTTP method (case insensitive) |
path | the URI path of the request |
content_types | the desired MIME types for serialization in order of preference; if none are usable then an exception is thrown |
Implements RestSchemaValidator::AbstractRestSchemaValidator.
|
privatevirtual |
returns a hash of example message information for the given request
method | the HTTP method of the original request (case insensitive) |
path | the URI path of the original request |
code | the HTTP response code of the response |
content_types | the desired MIME types for serialization in order of preference; if none are usable then an exception is thrown |
Implements RestSchemaValidator::AbstractRestSchemaValidator.
|
privatevirtual |
returns a unique hash for the schema that can be used to compare schemas
Implements RestSchemaValidator::AbstractRestSchemaValidator.
|
privatevirtual |
returns a hash of URI paths as keys with values as lists of supported HTTP methods
Implements RestSchemaValidator::AbstractRestSchemaValidator.
|
privatevirtual |
returns a hash of example Qore code for the given request
method | the HTTP method (case insensitive) |
path | the URI path of the request |
Implements RestSchemaValidator::AbstractRestSchemaValidator.
|
privatevirtual |
returns example Qore code for the given response
method | the HTTP method of the original request (case insensitive) |
path | the URI path of the original request |
code | the HTTP response code of the response |
Implements RestSchemaValidator::AbstractRestSchemaValidator.
|
privatevirtual |
returns the target URL for the schema
MISSING-TARGET-URL | no target URL provided for the schema |
Implements RestSchemaValidator::AbstractRestSchemaValidator.
bool RestSchemaValidator::NullRestSchemaValidator::managesUriPath | ( | ) |
|
privatevirtual |
processes and parses a client request and returns the deserialized message body (if any)
method | the HTTP method (case-insensitive) |
path | the URI path with any query arguments |
http_body | the serialized message body |
headers | a reference to the hash of HTTP headers received; any default header values to be assumed by the server for the request will be added here |
DESERIALIZATION-ERROR | the request body could not be deserialized, results in a 400 Bad Request response returned to the caller |
SCHEMA-VALIDATION-ERROR | this exception should be thrown if there is a validation error in the request so that a 400 Bad Request response can be returned to the caller |
INVALID-METHOD | invalid HTTP method for the request; the arg argument should have a list of acceptable HTTP methods for this request |
Implements RestSchemaValidator::AbstractRestSchemaValidator.
|
privatevirtual |
parses and validates the response from the server and returns a hash of the processed info
method | the HTTP method (case insensitive) |
path | the URI path of the original request (without any query arguments) |
code | the HTTP response code |
response_body | the HTTP response body data (if any) |
hdr | as hash of HTTP headers received |
DESERIALIZATION-ERROR | the request body could not be deserialized or had an invalid Content-Type |
Implements RestSchemaValidator::AbstractRestSchemaValidator.
|
privatevirtual |
processes a client-side REST request and returns a hash that can be used to make the outgoing client-side HTTP request
method | the HTTP method (case-insensitive) |
path | the URI path with any query arguments |
body | the unserialized message body data |
headers | any headers to include in the request; note that the Content-Type header should not be sent here as it will be overridden when the message is serialized |
content_types | the desired MIME types for serialization in order of preference; if none are usable then an exception is thrown |
SERIALIZATION-ERROR | unsupported message body MIME type requested or missing serialization module |
Implements RestSchemaValidator::AbstractRestSchemaValidator.
|
private |
processes a REST response with a serialized message body, validates any response data against schema definitions if possible
method | the HTTP method of the original request |
path | the URI path of the original request (without query arguments) |
code | the HTTP response code |
response_body | the response body data (if any) |
headers | HTTP headers to include in the response |
content_types | the desired MIME types for serialization in order of preference; if none are usable then an exception is thrown; if this argument is not present, then json is preferred over yaml |
ACCEPT-ERROR | the response body could not be serialized because the client does not accept a supported type |
SERIALIZATION-ERROR | the response body could not be serialized due to an error |
Accept
header field is present, and if the server cannot send a response which is acceptable according to the combined Accept field value, then the server SHOULD send a 406 (not acceptable) response. To ensure this happens, if an Accept
error of this nature occurs in this call, an "ACCEPT-ERROR"
must be thrown
|
privatevirtual |
overrides the basePath value
basePath | the new base path value; use an empty string here to clear the basePath |
Implements RestSchemaValidator::AbstractRestSchemaValidator.
const RestSchemaValidator::NullRestSchemaValidator::NullSchemaHashStr = "<null rest schema>" |
a unique hash for the null schema