#ifndef RVC_MOD_COMM_ENTITY_RESTFUL_HPP_ #define RVC_MOD_COMM_ENTITY_RESTFUL_HPP_ #include "RestfulFunc.h" #include "JsonConvertHelper.hpp" #include "microservices/api_comm.h" namespace SP { namespace Module { namespace Restful { /*errorCode 对应原有 Http 组件的 m_userCode;message 对应 m_errMsg*/ struct CommResponseJson : public MicroServices::API::CommResponse { JSONCONVERT2OBJECT_MEMEBER_REGISTER(success, errorCode, returnCode, errorMsg, message) JSONCONVERT2OBJECT_MEMEBER_RENAME_REGISTER("success", "code", "return_code", "error_msg", "message") }; //{ "code":"10000", "data" : true, "message" : "请求成功", "request" : "https://rvcgray.paasst.cmbchina.cn/api/gray/way?null", "success" : true } struct GrayResponseJson : public MicroServices::API::GrayResponseJson { JSONCONVERT2OBJECT_MEMEBER_REGISTER(success, errorCode, message, graySwitch) JSONCONVERT2OBJECT_MEMEBER_RENAME_REGISTER("success", "code", "message", "data") }; static bool GetStatusFromDebranchResponse(const std::string& content, CommResponseJson& responseStatus) { Json::Value rawRoot; return (!GetJsonRootObject(rawRoot, content)) ? false : Json2Object(responseStatus, rawRoot); } static bool GetGrayInfoFromDebranchResponse(const std::string& content, GrayResponseJson& responseStatus) { Json::Value rawRoot; return (!GetJsonRootObject(rawRoot, content)) ? false : Json2Object(responseStatus, rawRoot); } template static bool ExtractDataFromDebranchResponse(const std::string& content, T& outDataStruct) { Json::Value rawRoot; return (!GetJsonRootObject(rawRoot, content)) ? false : Json2Object(outDataStruct, rawRoot["data"]); } template static bool FulfillRequestJsonBody(HttpClientRequestConfig* pConfig, const T& dataStruct) { std::string jsonValue; if (Object2Json(jsonValue, dataStruct)) { pConfig->SetJsonBody(jsonValue); return true; } return false; } } //Restful } //Module } //SP #endif //RVC_MOD_COMM_ENTITY_RESTFUL_HPP_