详情
我是RESTful API&的新手。 Laravel世界。
但是“每个艺术家都是第一个业余爱好者。 - 对吧?” 让我们谈谈。
我有2个网站。我们称之为:
A
B
如果用户列表+所有关系,网站B
都有一个很好的列表。
我想允许网站A
访问网站B
并加载这些不错的数据。
我从未这样做过。我假设逻辑是:
A
需要某种api_keys才能访问网站B
。B
将数据作为json文件返回到网站A
。 A
将收到该json文件,并将其加载到HTML中并显示它。 我的逻辑是否接近?如果我错了,请纠正我。 :)
这是我尝试过的
在做了一些研究之后,我遇到了这个site。我真的很喜欢它。我完成了它。 现在,我有点了解RESTful API。
然后,我遇到了这个site。我发现了这个
filters.php
Route::filter('api', function() {
// Fetch a user record based on api key
$user = User::where('api_key', '=', Input::get('api_key'))
->take(1)
->get();
if ($user->count() > 0) {
Auth::onceUsingId($user[0]->id); // Authorize the user for this one request
} else {
return Response::view('errors.404', array(), 404)->header('Content-Type', 'application/json');
}
});
我注意到这个OP,在用户表中存储了api_key
。
我的问题
有更好/更简单的方法吗?
我可以手动将其设置为random
数字+文本,而不是从数据库中获取api_key,而不是像这样的'21sdf364rt7y6r5ty1u28x1h8gt7yt2ert3654871'吗?
api_key
到期有多长?它甚至是expire
吗?我们怎么知道的? 同样,我的主要goal
是允许网站A
访问网站B
中的内容。
答案 0 :(得分:0)
我的逻辑是否接近?
是的,足够接近。
因此,主要目标是访问网站B中的内容。您可以决定B中的内容是否受限制内容。
如果能够访问这些内容的用户有限,是的,您需要一个api密钥。
如果站点B的内容是公共的,您只需打印json数据,而不需要像github那样的任何API密钥:https://api.github.com/users/github。