我正在使用CodeIgniter框架(使用API library)在PHP中构建API,我有几个简单的问题:
非常感谢您的帮助。我花了很多时间试图解决上述问题。 :(
答案 0 :(得分:2)
您可以将CI视为CI框架中的任何其他方法,除了不是渲染视图,它只是吐出数据然后结束。
由于我们不知道你要具体做什么,我会一般地回答。
1) - 是的,这是不必要的开销,但不是很多。您应该传递某种令牌,以确保呼叫来自您而不仅仅是某些脚本在网站上ping随机页面。这可能是静态的...... http://www.yoursite.com/controller/method/token
然后让你的方法检查传递的标记,并使用类中的静态标记。
2) - 首先导航到它。例如,如果您的API返回一个json对象,它会在屏幕上将其吐出,您可以在那里验证结果。然后通过代码检查,选择您的请求方法。
说你的php是:
public function getUsers()
{
if(isset($_POST['token']) && $_POST['token'] == 'abc123')
{
die(json_encode(array('users' => array('1' => 'someone', '2' => 'someone else'))));
}
}
然后你通过像ajax之类的东西来点击按需请求......
$.ajax({
url: 'yoursite.com/controller/getUsers',
type: "POST",
data: {token: 'abc123'}, //obviously make this more complex
async: false,
global: false,
dataType: "json",
success: function(data){
// do something with your data
}
});
如果是服务器端,则使用cURL。真的是你的选择。如需更深入的回复,请缩小您的问题。
答案 1 :(得分:0)
如果您是唯一一个使用API的人,您可以使用auth basic来处理身份验证,例如通过.htaccess。它可以帮助您避免编写额外的代码。
关于如何测试API:您可以使用PHP的curl函数创建rest客户端。 php手册提供了一些使用curl进行GET和POST调用的示例。