Boost::urls::format
Boost 1.82 dropped a lovely new toy, boost::urls::format, which is a lot
like our urlFromPieces method, but better in that it makes the resulting
uris more readable, and allows doing things like fragments in a single
line instead of multiple. We should prefer it in some cases.
Tested:
Redfish service validator passes.
Spot checks of URLs work as expected.
Unit tests pass.
Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: Ia7b38f0a95771c862507e7d5b4aa68aa1c98403c
diff --git a/redfish-core/lib/systems.hpp b/redfish-core/lib/systems.hpp
index c474d08..f9938c7 100644
--- a/redfish-core/lib/systems.hpp
+++ b/redfish-core/lib/systems.hpp
@@ -32,6 +32,7 @@
#include <boost/container/flat_map.hpp>
#include <boost/system/error_code.hpp>
+#include <boost/url/format.hpp>
#include <sdbusplus/asio/property.hpp>
#include <sdbusplus/unpack_properties.hpp>
@@ -3118,8 +3119,8 @@
const std::shared_ptr<bmcweb::AsyncResp>& aRsp) {
nlohmann::json::array_t chassisArray;
nlohmann::json& chassis = chassisArray.emplace_back();
- chassis["@odata.id"] = crow::utility::urlFromPieces(
- "redfish", "v1", "Chassis", chassisId);
+ chassis["@odata.id"] = boost::urls::format("/redfish/v1/Chassis/{}",
+ chassisId);
aRsp->res.jsonValue["Links"]["Chassis"] = std::move(chassisArray);
});