Cliente api que executa pedidos ao registration server (eureka) para registar esta instância ou obter servidores com o qual pode comunicar.
Para ser usado em microserviços implementados em c++.
sudo apt-get install libcpprest-dev -y && \
export CPPREST_ROOT=/usr && \
cmake . && \
cmake --build .
Registar:
void registerEndpoint
{
std::shared_ptr<ApiClient> apiClient(new ApiClient);
std::shared_ptr<ApiConfiguration> apiConfig(new ApiConfiguration);
apiConfig->setBaseUrl("http://localhost:1906/api");
apiClient->setConfiguration(apiConfig);
EndpointsApi api(apiClient);
api.registerEndpoint().wait();
}
Obter endpoints de um serviço:
void getEndpoint(string service)
{
std::shared_ptr<ApiClient> apiClient(new ApiClient);
std::shared_ptr<ApiConfiguration> apiConfig(new ApiConfiguration);
apiConfig->setBaseUrl("http://localhost:1906/api");
apiClient->setConfiguration(apiConfig);
EndpointsApi api(apiClient);
api.getServiceEndpoint("app1").then([=](pplx::task<std::shared_ptr<Endpoint>> endpoint) {
try {
std::cout << endpoint.get()->getInstanceId() + endpoint.get()->getEndpoint() << '\n';
} catch(const std::exception& e) {
std::cout << "GetServiceEndpoint() exception: " << e.what() << '\n';
}
}).wait();
}
Exemplo:
#include "api/EndpointsApi.h"
using namespace pt::unl::fct::miei::usmanagement::manager::client::api;
int main()
{
std::shared_ptr<ApiClient> apiClient(new ApiClient);
std::shared_ptr<ApiConfiguration> apiConfig(new ApiConfiguration);
apiConfig->setBaseUrl("http://localhost:1906/api");
apiClient->setConfiguration(apiConfig);
EndpointsApi api(apiClient);
api.registerEndpoint().wait();
api.getServiceEndpoint("app1").then([=](pplx::task<std::shared_ptr<Endpoint>> endpoint) {
try {
std::cout << endpoint.get()->getInstanceId() + endpoint.get()->getEndpoint() << '\n';
} catch(const std::exception& e) {
std::cout << "GetServiceEndpoint() exception: " << e.what() << '\n';
}
}).wait();
}
docker build -f docker/Dockerfile . -t registration-client-cpp
Cmake - CMake is an open-source, cross-platform family of tools designed to build, test and package software
Registration-client-cpp está licenciado com a MIT license. Ver a licença no cabeçalho do respetivo ficheiro para confirmar.