来源:hetao
浏览 503
扫码
分享
2020-03-22 10:47:49
4.4. RESTful应用开发参考
4.4.1. 工具宏
4.4.1.1. HTTP方法宏
用于在RESTful控制器配置中配置。
宏定义 | #define HTTP_METHOD_GET"GET" |
---|
宏定义 | #define HTTP_METHOD_POST"POST" |
宏定义 | #define HTTP_METHOD_HEAD"HEAD" |
宏定义 | #define HTTP_METHOD_TRACE"TRACE" |
宏定义 | #define HTTP_METHOD_OPTIONS"OPTIONS" |
宏定义 | #define HTTP_METHOD_PUT"PUT" |
宏定义 | #define HTTP_METHOD_DELETE"DELETE" |
4.4.2. 函数原型
4.4.2.1. RESTful应用动态库函数原型
4.4.2.1.1. funcRestServiceEntry
函数原型 | typedef int funcRestServiceEntry( struct RestServiceContext ctx ); |
---|
函数说明 | 当RESTful控制器分拣时调用 |
输入参数 | struct RestServiceContext ctx : RESTful环境上下文环境 |
输出参数 | (无) |
返回值 | 0 : 构造成功非0 : 失败,具体失败原因见错误宏 |
4.4.3. API函数
4.4.3.1. RESTful服务控制器类
4.4.3.1.1. RESTCreateRestServiceControler
函数原型 | struct RestServiceControler RESTCreateRestServiceControler( struct RestServiceConfig config_array ); ); |
---|
函数说明 | 用代码中配置的RESTful路由表,构造RESTful服务控制器 |
输入参数 | struct RestServiceConfig config_array : 在代码中配置的RESTful路由表;http_method是HTTP请求头方法,http_uri_paths_match是HTTP请求头URI,目录文件名可用"{}"通配,如"/books/{}",pfuncRestServiceEntry是RESTful服务入口函数 |
输出参数 | (无) |
返回值 | struct RestServiceControler : RESTful服务控制器 |
4.4.3.1.2. RESTDispatchRestServiceControler
函数原型 | int RESTDispatchRestServiceControler( struct RestServiceControler ctl , struct HttpEnv http ); |
---|
函数说明 | 用当前HTTP请求,查询RESTful服务控制器,分派调用RESTful服务入口函数 |
输入参数 | struct RestServiceControler ctl : RESTful服务控制器struct HttpEnv http : HTTP结构,内有当前HTTP请求,调用socgi层函数SOCGIGetHttpEnv取出 |
输出参数 | (无) |
返回值 | 0 : 分派成功非0 : 失败,具体失败原因见错误宏 |
4.4.3.1.3. RESTDestroyRestServiceControler
函数原型 | void RESTDestroyRestServiceControler( struct RestServiceControler ctl ); |
---|
函数说明 | 销毁RESTful服务控制器 |
输入参数 | struct RestServiceControler ctl : RESTful服务控制器 |
输出参数 | (无) |
返回值 | (无) |
4.4.3.2. 查询RESTful请求信息类
4.4.3.2.1. RESTGetHttpMethodPtr
函数原型 | char RESTGetHttpMethodPtr( struct RestServiceContext ctx , int p_http_method_len ); |
---|
函数说明 | 从RESTful环境中得到当前HTTP请求的方法 |
输入参数 | struct RestServiceContext ctx : RESTful环境上下文环境 |
输出参数 | int p_method_len : 如果传入,返回时赋值为HTTP请求方法的长度 |
返回值 | char : HTTP请求方法;没有C字符串结束符,须按长度访问 |
4.4.3.2.2. RESTGetHttpUriPtr
函数原型 | char RESTGetHttpUriPtr( struct RestServiceContext ctx , int p_http_uri_len ); |
---|
函数说明 | 从RESTful环境中得到当前HTTP请求的方法 |
输入参数 | struct RestServiceContext ctx : RESTful环境上下文环境 |
输出参数 | int p_method_len : 如果传入,返回时赋值为HTTP请求方法的长度 |
返回值 | char : HTTP请求方法;没有C字符串结束符,须按长度访问 |
4.4.3.2.3. RESTGetHttpUriPathsCount
函数原型 | int RESTGetHttpUriPathsCount( struct RestServiceContext ctx ); |
---|
函数说明 | 从RESTful环境中得到当前HTTP请求URI的分解出来的目录文件数量 |
输入参数 | struct RestServiceContext ctx : RESTful环境上下文环境 |
输出参数 | (无) |
返回值 | int : 分解出来的目录文件数量 |
4.4.3.2.4. RESTGetHttpUriPathPtr
函数原型 | char RESTGetHttpUriPathPtr( struct RestServiceContext ctx , int index , int p_path_len ); |
---|
函数说明 | 从RESTful环境中得到当前HTTP请求URI的分解出来的某段目录文件名 |
输入参数 | struct RestServiceContext ctx : RESTful环境上下文环境< br />int index : 分解出来的目录文件名段序号;从1开始int p_path_len : 目录文件名长度 |
输出参数 | (无) |
返回值 | char : 分解出来的某段目录文件名;没有C字符串结束符,须按长度访问 |
4.4.3.2.5. RESTGetHttpUriQueriesCount
函数原型 | int RESTGetHttpUriQueriesCount( struct RestServiceContext ctx ); |
---|
函数说明 | 从RESTful环境中得到当前HTTP请求URI的分解出来的参数数量 |
输入参数 | struct RestServiceContext ctx : RESTful环境上下文环境 |
输出参数 | (无) |
返回值 | int : 分解出来的参数数量 |
4.4.3.2.6. RESTGetHttpUriQueryKeyPtr
函数原型 | char RESTGetHttpUriQueryKeyPtr( struct RestServiceContext ctx , int index , int p_key_len ); |
---|
函数说明 | 从RESTful环境中得到当前HTTP请求URI的分解出来的某段参数名 |
输入参数 | struct RestServiceContext ctx : RESTful环境上下文环境< br />int index : 分解出来的参数段序号;从1开始int p_key_len : 参数名长度 |
输出参数 | (无) |
返回值 | char : 分解出来的某段参数名;没有C字符串结束符,须按长度访问 |
4.4.3.2.7. RESTGetHttpUriQueryValuePtr
函数原型 | char RESTGetHttpUriQueryValuePtr( struct RestServiceContext ctx , int index , int p_value_len ); |
---|
函数说明 | 从RESTful环境中得到当前HTTP请求URI的分解出来的某段参数值 |
输入参数 | struct RestServiceContext ctx : RESTful环境上下文环境< br />int index : 分解出来的参数段序号;从1开始int p_key_len : 参数值长度 |
输出参数 | (无) |
返回值 | char : 分解出来的某段参数值;没有C字符串结束符,须按长度访问 |
4.4.3.2.8. RESTGetHttpRequestBodyPtr
函数原型 | char RESTGetHttpRequestBodyPtr( struct RestServiceContext ctx , int p_body_len ); |
---|
函数说明 | 从RESTful环境中得到当前HTTP请求体 |
输入参数 | struct RestServiceContext ctx : RESTful环境上下文环境< br />int p_body_len : HTTP请求体长度 |
输出参数 | (无) |
返回值 | char : HTTP请求体;没有C字符串结束符,须按长度访问 |
4.4.3.3. 构造RESTful响应信息类
函数原型 | int RESTFormatHttpResponse( struct RestServiceContext ctx , char http_response_body , int http_response_body_len , char http_header_format , … ); |
---|
函数说明 | 构造HTTP响应 |
输入参数 | struct RestServiceContext ctx : RESTful环境上下文环境char http_response_body : HTTP响应体int http_response_body_len : HTTP响应体长度char http_header_format , … : HTTP响应头;如果有多行的话,要用"\r\n"分隔 |
输出参数 | (无) |
返回值 | 0 : 构造成功非0 : 失败,具体失败原因见错误宏 |
4.4.3.4. 其它类
4.4.3.4.1. RESTGetHttpEnv
函数原型 | struct HttpEnv RESTGetHttpEnv( struct RestServiceContext ctx ); |
---|
函数说明 | 从RESTful环境上下文环境中得到HTTP结构,后续可以使用fasterhttp库操作该结构,编译时包含其头文件,链接时包含其库文件 |
输入参数 | struct RestServiceContext *ctx : HTTP环境上下文环境 |
输出参数 | (无) |
返回值 | HTTP环境 |
当前内容版权归
hetao 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问
hetao .