我正在尝试编写一些简单的代码来帮助我了解如何构建一个API,其他开发人员可以连接到我的应用程序。
开发人员需要通过HTTP标头传递用户名/密码,并通过GET将方法传递给API。
PHP API将检查用户名和密码的标头值。如果两个值都匹配,则允许在服务器上执行该功能。
但我不确定如何处理以下两件事并寻求帮助
这是我的客户端代码
<!DOCTYPE html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="encoding" content="utf-8">
<meta charset="utf-8">
<title></title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(function(){
$.ajaxSetup({
headers: {
'API-USER' : 'admin',
'API-PASS' : 'admin'
}
});
$.getJSON("http://localhost/api.php?method=sayHello&callback=?", function(data){
console.log(data);
console.log("HI");
});
});
</script>
</head>
<body>
<h1>It works!</h1>
</body>
</html>
这是我的服务器端代码“我的API”
<?php
$_GET["callback"] = "";
if(isset($_GET['method']) && authenticate() ){
$fun = trim($_GET['method']);
if( $fun != "authenticate" && function_exists($fun) ){
$fun();
}
}
function sayHello(){
$a = json_encode(array("Hello World, Welcome to this new API!!!"));
echo $_GET["callback"] . sendCallBack($a);
}
function authenticate(){
if(isset($_SERVER['API-USER'])){
$user = $_SERVER['API-USER'];
}
if(isset($_SERVER['API-PASS'])){
$pass = $_SERVER['API-PASS'];
}
//this will be replaced with a database lookup to authenticate the user
if($user == "admin" && $pass == "admin"){
return true;
}
return false
}
function sendCallBack($arr){
return '(' . json_encode($arr). ')';
}
?>