1. 程式人生 > >Blog的API(php裸寫,運用jwt登入

Blog的API(php裸寫,運用jwt登入

這個API需要一個apache的改寫
將全部的入口都丟入index,這樣才能作為一個API被使用

這份程式碼目前丟在我的Github

呼叫方與設計方提前商定好API介面。
如在本機上跑"localhost/API/restful/" 是自己的檔案
可以設計一個.htaccess的系統檔案,這個檔案調整的是apache的重寫規則

RewriteEngine on    //apache的重寫檔案 

RewriteCond %{REQUEST_FILENAME} !-d //這裡如果不是檔案也不是目錄,才會把這條URL交給以下RewriteRule執行,且
RewriteCond %{REQUEST_FILENAME} !-f //多個RewriteCond在一起只對下一個RewriteRule產生影響
RewriteRule ^(.*$) index.php/$1 [L] //預設這個目錄下的訪問全部轉到index.php下
^(.*)$ 為匹配所有的路徑對映到入口檔案 index.php/$1

這個中括號中[L]的意義:
Apache Rewrite規則修正符 
1) R 強制外部重定向 
2) F 禁用URL,返回403HTTP狀態碼。 
3) G 強制URL為GONE,返回410HTTP狀態碼。 
4) P 強制使用代理轉發。 
5) L 表明當前規則是最後一條規則,停止分析以後規則的重寫。 
6) N 重新從第一條規則開始執行重寫過程。 
7) C 與下一條規則關聯 
$pdo = new PDO('mysql:host=ip地址;dbname=資料庫名','root','資料庫密碼');  //建立一個數據庫控制代碼
$pdo->query("SET NAMES utf8");  //設定資料庫內容取出的內容為utf-8格式

$pdo = require 'Db.php'; //控制代碼的呼叫


關於一個類的呼叫,其資料庫的控制代碼應該通過構造方法來呼叫

關於資料庫的呼叫可以這麼寫
$sql = 'SELECT * FROM `zhuche` WHERE `username` = :username';     //這裡:是佔位符 防sql注入
        $stmt = $this->_db->prepare($sql);         //呼叫自己變數直接不用$
        $stmt->bindParam(':username',$username); //給剛才的變數進行賦值
        $stmt->execute();                
        $result = $stmt -> fetch(PDO::FETCH_ASSOC);     //進行一個數據型別為陣列的查詢,
	//如果只是修改上句話就省掉變成
	if(!$stmt->execute()){
            throw new Exception('註冊失敗',ErrorCode::REGISTER_FAIL);
        }
switch($a){
	5:
	
	4:
}5:和4:後面分別為$a的值為5或者4產生的結果.
字首為localhost/API/restful
//使用者的註冊/users
POST "username" : ,
"password" : ,
"name" : ,
"intro" : ,
"sex" : ,"email": 這麼6個變數
//文章的建立先要有登入(在postman的,/articles
POST "title": , "content":
//文章的修改/articles/5(需要登入   這裡需要加上一個/id
PUT "title": , "content":
//文章的查詢,分2種
//1、有/id,確定查詢某id
GET 直接在url後加個/id即可查找出
//2、查詢一個人寫的,但是id這裡需要為0才表示查詢一個list
GET 在url後面?authorid=27這麼加

question:

1、密碼是MD5加密的,那麼字串要設定得足夠長度

2、測API,提交的資料。如get之類用postman是在params裡,而body是獲取raw裡的資料

3、通過header給的token資料,注意帶有頭bearer這個字元在裡面

API文件