Page 1 of 1

RESTful Api, problemas con addKeyword

PostPosted:Wed Mar 28, 2018 8:54 am
by juanan
Hola,

Estamos usando el REST Api en PHP sin problemas hasta que hemos querido hacer uso de la propiedad addKeyword,
El código que estamos usando es el siguiente:
Code: Select all
$url = "http://192.168.1.199:8080/OpenKM/services/rest/property/addKeyword";
$val = array("nodeId" => "d570e064-aff8-4033-861f-8d2b1a99c7da", "keyword" => "clave");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, "USER:PASSWORD");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $val);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    "Accept: application/json",
    'Content-Type: application/json'
));
$res = curl_exec($ch);
echo $res;
if (curl_errno($ch)) {
  return curl_error($ch);
} else {
  return $res;
}
curl_close($ch);
y el resultado de ejecutarlo es el siguiente:

NullPointerException: null

Gracias

Re: RESTful Api, problemas con addKeyword

PostPosted:Fri Mar 30, 2018 7:17 am
by jllort
Aqui tenemos que diferenciar si el error se produce dentro del OpenKM ( core ) o es algo relacionado con el propio servicio de rest. La parte de la llamara rest parece correcta la url es correcto "XXXX/OpenKM/services/rest/property/addKeyword", el nombre de los parametros también ( nodeId y keyword ) y la llamada es de tipo POST o sea que el problema no lo veo en la parte de rest. Me da la sensación que el problema viene con el UUID que igual on existe o no tiene privilegios ?

Tendría que ver la traza completa del error del lado del servidor $TOMCAT_HOME/logs/catalina.log

Porque no utilizais el SDK de PHP https://docs.openkm.com/kcenter/view/sdk4php-1.1.2/

Re: RESTful Api, problemas con addKeyword

PostPosted:Tue Apr 03, 2018 2:04 pm
by juanan
Hemos probado de esta manera:
Code: Select all
    $url = $this->ser . "/OpenKM/services/rest/property/addKeyword?nodeId=" . "d570e064-aff8-4033-861f-8d2b1a99c7da" . "&keyword=" . "clave";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_USERPWD,  "USER:PASSWORD");
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        "Accept: application/json",
        'Content-Type: application/json'
    ));
    $res = curl_exec($ch);
    if (curl_errno($ch)) {
      return curl_error($ch);
    } else {
      return $res;
    }
    curl_close($ch);
y funciona correctamente.

Saludos.