如何允许访问其他站点以从站点/数据库中检索数据


How to allow access to other site(s) to retrieve data from your site/database?

我有 2 个站点。我们称之为:

  • A
  • B

网站B有一个很好的数据列表,以及它的所有关系。我想允许网站A访问网站B并加载这些data

  • 当然,网站A需要某种凭据,api_keys或密码才能访问网站B。右?我从来没有这样做过。

  • 然后在凭据匹配后,网站B会将数据作为 json 文件返回到网站A

  • 然后,网站A将接收该 json 文件,并将它们加载到 HTML 中并显示它。

我希望我对我的目标足够清楚。

这是我尝试过的:

经过一些研究,我遇到了这个网站。我真的很喜欢它。我一路走完了。现在,我对 RESTful API 有了更多的了解。

现在,继续code

<小时 />

在我的filters.php我修改

Route::filter('auth.basic', function()
{
    return Auth::basic("username");
});
<小时 />

在我的routes.php

Route::get('/authtest', array('before' => 'auth.basic', function(){
    return return "It's work !";
}));

之后,我跑了

注意

  • username = firstuser
  • password = first_password

C:''wamp''www''laravel-1
λ curl --user firstuser:first_password localhost/l4api/public/index.php/authtest

明白了

It's work !

<小时 />

截至目前,它只返回一个字符串。

  • 如果我想以 json 格式返回整个用户表,我该怎么做?

  • 到目前为止,我根本没有使用任何api_key?这样不好吗?

    对参与这篇文章的每个人大thanks

在你的routes.php中,你应该像这样添加sth。

路由::get('/api/distributors', array('before' => 'auth.basic', 'uses'=>'DistributorController@api_index'((;

}((;

Controller

<?php 
$user = $distributor->user()->first();
$Data = [

    'user' => $user->toArray(),
    'distributor' => $distributor->toArray(),
    'contacts' => $distributor->contacts()->get()->toArray(),
    'addresses' => $distributor->addresses()->get()->toArray()
];
$json_string = json_encode($Data, JSON_PRETTY_PRINT);
?>

逻辑

  • 查询您需要的任何内容
  • 将它们存储在数组索引中
  • 对数据进行编码
  • 在发送之前让您的 JSON 漂亮

然后,另一个站点将收到包含所有数据的1 json 文件。然后他们需要在之前对其进行解码,他们可以将它们全部加载为HTML/PHP格式。