codeigniter - 从API返回数据的正确方法

时间:2012-08-17 19:35:45

标签: php api

我正在尝试创建API。

我有一个控制器做某事,并返回让我们说“ABC”作为一个字符串。 我的网址看起来像这样:

     http://myserver/myapp/myAPImethod/parm1

在方法内部,我有这样的代码:

    header ('Content-Type: application/json; charset=UTF-8');
    $model= str_replace("%snv%"," ",$model);
    echo json_encode($model);

使用此API的应用程序具有执行以下操作的控制器:

public function curl($url){
  //echo 'in the routine';
    $ch=curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $data=curl_exec($ch);
    print_r($data);
    curl_close($ch);
    return $data;
  }
    $url = "http://myserver/myapp/index.php/myAPImethod/hname";
    $jsondata = $this->curl($url);      
    //print_r(json_decode($jsondata));

我的问题是:当我运行使用我的API的应用程序时,因为我有一个echo语句,它在页面上显示“ABC”。但我不希望它显示结果。我只是希望它将数据传递给消费应用程序。我已经尝试将API方法中的echo语句更改为“return”语句,但是我没有将任何数据发送给调用者。

感谢。

1 个答案:

答案 0 :(得分:0)

创建JSON视图并将数据传递到json视图

// In view create a file json_view.php and paste this content

// RFC4627-compliant header
header('Content-type: application/json');

// Encode data
if(isset($response)) {
    echo json_encode($response);
}
else
    echo json_encode(array('error' => true));

在您的控制器中

// Build our view's data object
$data = array('response' => $response_data);
// Load the JSON view
$this->load->view('json_view', $data);