可以用Valence API完全替换储罐吗?

时间:2015-07-22 07:47:41

标签: desire2learn

如果答案是肯定的,请提供参考文件。

我是valence api的新手。

最诚挚的问候, 范家谦

1 个答案:

答案 0 :(得分:0)

是的!我们今年夏天正式关闭了储罐。这是一个真正的痛苦。我已经使用效价重新实现了功能,并且现在对我们的灵活性感觉更好。我围绕API调用编写了一个PHP包装器,它运行得很漂亮。

就参考文档而言,我只是使用valence文档来设计包装器。

我为Valence等REST服务编写了几个PHP包装器,我从3个通用函数开始

  • basicGet($ URL)
  • basicPost($网址,$数据)
  • basicPut($网址,$数据)

我可以用各自需要的数据编写调用特定REST路径的函数。

我使用了D2L D2LAppContext.php&的PHP库。 D2LAppContextFactory.php用于创建Authorization和User上下文,还可以创建AuthenticatedUri,从那时起我使用自己的函数和PHP的CURL函数来调用Valence。

这是我的基本GET功能的一个例子

function basic_get($opContext,$url){
    $url = $opContext->createAuthenticatedUri($url,"GET");
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url); 
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLINFO_HEADER_OUT, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
    $response = curl_exec($ch);     

    return(json_decode($response));
}

我目前正在解决SSL问题,这就是CURLOPT_SSL_VERIFYPEER设置为FALSE的原因。你不应该这样做。从那里,你可以做这样的事情:

function get_user($opContext,$userid){
    return basic_get($opContext,"/d2l/api/lp/1.1/users/$userid");
}

从那里开始,只需将每个REST路径包装在一个函数中即可。 POST和PUT基本功能有点复杂,但一旦实现,实现新路径就变得轻而易举。