CommEntityRestful.hpp 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #ifndef RVC_MOD_COMM_ENTITY_RESTFUL_HPP_
  2. #define RVC_MOD_COMM_ENTITY_RESTFUL_HPP_
  3. #include "RestfulFunc.h"
  4. #include "JsonConvertHelper.hpp"
  5. #include "microservices/api_comm.h"
  6. namespace SP
  7. {
  8. namespace Module
  9. {
  10. namespace Restful
  11. {
  12. /*errorCode 对应原有 Http 组件的 m_userCode;message 对应 m_errMsg*/
  13. struct CommResponseJson : public MicroServices::API::CommResponse
  14. {
  15. JSONCONVERT2OBJECT_MEMEBER_REGISTER(success, errorCode, returnCode, errorMsg, message)
  16. JSONCONVERT2OBJECT_MEMEBER_RENAME_REGISTER("success", "code", "return_code", "error_msg", "message")
  17. };
  18. //{ "code":"10000", "data" : true, "message" : "请求成功", "request" : "https://rvcgray.paasst.cmbchina.cn/api/gray/way?null", "success" : true }
  19. struct GrayResponseJson : public MicroServices::API::GrayResponseJson
  20. {
  21. JSONCONVERT2OBJECT_MEMEBER_REGISTER(success, errorCode, message, graySwitch)
  22. JSONCONVERT2OBJECT_MEMEBER_RENAME_REGISTER("success", "code", "message", "data")
  23. };
  24. static bool GetStatusFromDebranchResponse(const std::string& content, CommResponseJson& responseStatus)
  25. {
  26. Json::Value rawRoot;
  27. return (!GetJsonRootObject(rawRoot, content)) ? false : Json2Object(responseStatus, rawRoot);
  28. }
  29. static bool GetGrayInfoFromDebranchResponse(const std::string& content, GrayResponseJson& responseStatus)
  30. {
  31. Json::Value rawRoot;
  32. return (!GetJsonRootObject(rawRoot, content)) ? false : Json2Object(responseStatus, rawRoot);
  33. }
  34. template <typename T>
  35. static bool ExtractDataFromDebranchResponse(const std::string& content, T& outDataStruct)
  36. {
  37. Json::Value rawRoot;
  38. return (!GetJsonRootObject(rawRoot, content)) ? false : Json2Object(outDataStruct, rawRoot["data"]);
  39. }
  40. template <typename T>
  41. static bool FulfillRequestJsonBody(HttpClientRequestConfig* pConfig, const T& dataStruct)
  42. {
  43. std::string jsonValue;
  44. if (Object2Json(jsonValue, dataStruct)) {
  45. pConfig->SetJsonBody(jsonValue);
  46. return true;
  47. }
  48. return false;
  49. }
  50. } //Restful
  51. } //Module
  52. } //SP
  53. #endif //RVC_MOD_COMM_ENTITY_RESTFUL_HPP_