1 // ANNA - Anna is Not Nothingness Anymore //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
9 #include <anna/core/tracing/Logger.hpp>
11 #include <anna/http/wims20/ClientSide.hpp>
13 #include <anna/http/Request.hpp>
19 * Los niveles parece que serán bastante estables, así que nos ahorramos calcular toda su ruta
20 * cada vez que tengamos que calcular la URI.
22 void http::wims20::ClientSide::addOtherLevel(const std::string& otherLevel)
23 throw(RuntimeException) {
24 if(a_strOtherLevels == NULL)
25 a_strOtherLevels = Abstract::createString(otherLevel);
27 *a_strOtherLevels += '/';
28 *a_strOtherLevels += otherLevel;
31 Abstract::other_level_add(otherLevel);
35 http://domain-openapis/path-openapis/serviceID/guid/other_possible_levels?query_parameters
37 Dónde los campos tienen siguen la siguiente especificación:
38 \li http://domain-openapis: Identifica el recurso del Open API.
39 \li path-openapis: Recurso opcional que ajusta la ruta hacia los recursos de éste API.
40 \li serviceID: Identificador de recurso.
41 \li guid: Identificador del usuario que solicita la petición.
42 \li other_possible_level: Opcionalmente se pueden indicar tantos niveles jerárquicos como fuera
43 necesario para el servicio.
44 \li query_parameters: Lista de parámetros. Si hay más de un parámetro se separará con '&'.
46 void http::wims20::ClientSide::codeOn(http::Request& request)
47 throw(RuntimeException) {
48 a_uri = Abstract::calculeFixedPart();
50 if(Abstract::hasOtherLevels())
51 Abstract::appendWithSlash(a_uri, *a_strOtherLevels);
53 if(Abstract::hasParameters()) {
57 for(parameter_iterator ii = parameter_begin(), maxii = parameter_end(); ii != maxii; ii ++) {
61 a_uri += *Abstract::parameter_name(ii);
63 a_uri += *Abstract::parameter_value(ii);
69 string msg("http::wims20::ServerSide::codeOn | ");
71 msg += " | Result (URI): ";
73 Logger::debug(msg, ANNA_FILE_LOCATION);
75 request.setURI(a_uri);