diff --git a/Modules/CppRestSdk/src/mitkRESTServerMicroService.cpp b/Modules/CppRestSdk/src/mitkRESTServerMicroService.cpp index cff4ef4308..7f8e6a7a6c 100644 --- a/Modules/CppRestSdk/src/mitkRESTServerMicroService.cpp +++ b/Modules/CppRestSdk/src/mitkRESTServerMicroService.cpp @@ -1,67 +1,68 @@ #include "mitkRESTServerMicroService.h" #include #include #include mitk::RESTServerMicroService::RESTServerMicroService(web::uri uri) : m_Listener(uri) { m_Uri = uri; m_Listener.support(MitkRESTMethods::GET, std::bind(&RESTServerMicroService::HandleGet, this, std::placeholders::_1)); openListener(); } mitk::RESTServerMicroService::~RESTServerMicroService() { closeListener(); } pplx::task mitk::RESTServerMicroService::openListener() { return m_Listener.open(); } pplx::task mitk::RESTServerMicroService::closeListener() { return m_Listener.close(); } web::uri mitk::RESTServerMicroService::GetUri() { return m_Uri; } void mitk::RESTServerMicroService::HandleGet(MitkRequest request) { int port = m_Listener.uri().port(); //getting exact request uri has to be a parameter in handle function web::uri_builder build(m_Listener.uri()); build.append(request.absolute_uri()); - utility::string_t uri = build.to_uri().to_string(); + utility::string_t uriStringT = build.to_uri().to_string(); - std::string uriString(uri.begin(), uri.end()); + std::string uriString(uriStringT.begin(), uriStringT.end()); MITK_INFO << "Test for Server at port " << port << " Exact request uri: " << uriString; web::json::value content; us::ModuleContext *context = us::GetModuleContext(); + auto managerRef = context->GetServiceReference(); if (managerRef) { auto managerService = context->GetService(managerRef); if (managerService) { //TODO extract actual json from request body - web::json::value v; + web::json::value data = request.extract_json().get(); MITK_INFO << "Server: Data send to manager"; - content = managerService->handle(build.to_uri(), v); + content = managerService->handle(build.to_uri(), data); MITK_INFO << "server: Data received from manager"; } } if (content!=NULL) { request.reply(MitkRestStatusCodes::OK, content); } else { request.reply(MitkRestStatusCodes::NotFound); } } \ No newline at end of file diff --git a/Modules/CppRestSdk/src/mitkRESTTest.cpp b/Modules/CppRestSdk/src/mitkRESTTest.cpp index ae207a96ba..ecd4facae5 100644 --- a/Modules/CppRestSdk/src/mitkRESTTest.cpp +++ b/Modules/CppRestSdk/src/mitkRESTTest.cpp @@ -1,30 +1,30 @@ #include "mitkRESTTest.h" #include #include #include mitk::RestTest::RestTest() {} mitk::RestTest::~RestTest() {} void mitk::RestTest::TestRESTServer() { us::ModuleContext *context = us::GetModuleContext(); auto managerRef = context->GetServiceReference(); if (managerRef) { auto managerService = context->GetService(managerRef); if (managerService) { managerService->receiveRequest(L"http://localhost:8080/test", this); } } } //TODO get Data, return modified Data web::json::value mitk::RestTest::notify(web::json::value data) { MITK_INFO << "Observer: Data in observer"; - data[L"key 1"] = web::json::value::string(U("Data modified by /test Observer")); - return data; + //data[L"key 1"] = web::json::value::string(U("Data modified by /test Observer")); + return data.at(U("key 1")); }