【发布时间】:2016-01-28 00:44:01
【问题描述】:
我有一个 SLim API,我在我的 ANGularJS 应用程序中使用它来访问我的数据库,像这样(例如):
我的控制器:
$scope.testDatabaseItems = function(){
$http.get(pathApi + 'items').success(function(data) {
$log.info("succes!");
$log.log(data);
$scope.items=data;
})
.error(function (data, status){
$log.error("error!");
$log.log(data);
});
};
我的 Slim 应用:
<?php
require 'vendor/autoload.php';
require 'config/config.php';
$app = new \Slim\App;
$app->get('/items', 'getItems');
$app->get('/items/{id:\d+}', 'getItemById');
$app->post('/new_user', 'addUser');
$app->get('/users', 'getUsers');
$app->run();
function DB_Connection() {
global $dbparams;
$dbhost = $dbparams['host'];
$dbuser = $dbparams['user'];
$dbpass = $dbparams['password'];
$dbname = $dbparams['dbname'];
$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $dbh;
}
function getItems() {
$sql = "SELECT * FROM aj_items";
try {
$db = DB_Connection();
$stmt = $db->query($sql);
$list = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
echo json_encode($list);
} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
?>
我的问题是我想调用我的 Slim 应用程序来检查用户名和密码是否有效(连接),但我想要一个 RESTfull API 并且我在 RESTfull API 中的某个地方使用,我通常使用其中任何一个那些:GET、POST、DELETE 或 PUT。
我看不出我可以使用哪一个,因为我只是检查了一些信息并将其与 password_verify() 进行比较。我知道如果它有效,我想返回 2 个特定字段,但如果我仍然希望我的 API 被视为 RESTfull,我不确定该怎么做。
【问题讨论】:
标签: angularjs connection slim restful-architecture