Blog的API(php裸寫,運用jwt登入
阿新 • • 發佈:2019-01-23
這個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這個字元在裡面