php mysql APP接口 移動端接口API M-API 開源代碼

開源協議:Apache License 2.0javascript

源碼地址:https://github.com/movie0312/M-API.gitphp

M-API前端


概述... 1java

 

1、    接口文檔結構... 3mysql

 

2、    接口環境設置... 3git

 

1.   開發環境... 3github

 

2.   生產環境... 3正則表達式

 

3、    基本配置說明... 4sql

 

4、    mysql配置說明... 5數據庫

 

5、    對外接口入口配置說明... 7

 

6、    接口參數說明... 7

 

7、    code代碼說明... 12

 


 

概述


爲了方便前端以及移動端接口的開發,將相應功能整合爲一個可快速設置應用的Web API,從而加快項目開發的週期。M-API經過簡單設置可將數據庫選擇性的暴露給調用方。固然,爲了安全考慮,建議設置相應的操做權限。該文檔適合有必定基礎的PHPer

M-API開發環境爲:php-7.0.4,  mysql-5.7.11。同時支持php5.6.0,其它版本未進行測試。

M-API運行環境須要開啓mbstring;加密操做須要開啓openssl;數據庫操做須要開啓pdo_mysql

M-API支持密送和簽名。目前只支持RSA加密。鑑於RSA的特性,當交互信息量較大時建議修改成僅加密處理敏感信息,其它信息採用對稱加密;或將傳輸協議改成HTTPS。若是必須使用RSA,可將信息進行分段處理。

M-API支持getpost

M-API數據庫目前僅支持mysql

M-API所有采用PDO 預處理操做數據庫。

M-API支持mysql字段有:char, varchar, tinyint, smallint, mediumint, int, bigint, decimal, text

M-API支持同時多個數據庫鏈接。一樣,也支持同時多組基本設置調用。

M-API支持表級別和列級別的操做權限設置。

M-API可指定關聯字段,以免注入。

M-API支持自動數據有效性的驗證。可手動指定正則驗證。

M-API接收和傳出數據均爲json

M-API不支持事務。請在業務邏輯中進行處理。

M-API不支持聯結查詢。請使用視圖查詢。

最終解釋權歸開發者全部。

未盡事宜,後續補充。

能力通常,水平有限。請多多包涵。



/class/basic.class.php————————基礎類  基本配置信息

/class/mysql.class.php————————數據庫類 mysql

/class/mysql.config.class.php——————mysql配置類

/class/rsa.class.php——————————加密類 rsa

/class/standard.class.php———————標準類經常使用函數


/pem/————————————————密鑰


/index.php——————————————對外接口入口

/showstruct.php——————————— 快速顯示數據庫結構




須要配置如下文件

/class/basic.class.php

/class/mysql.config.class.php

/index.php

  1. 2.    生產環境

需刪除如下文件

/readme.docx

/showstruct.php



public static $_config =array(

'default'=> array(

       '參數' => ‘

),

'自定義配置名'=> array(

       '參數' => ''

)

);

基本配置

參數

說明

display_errors

啓用調試

true / false

rsa

啓用rsa加密

true / false

cipher

啓用密送

true / false

private_key_path

私鑰文件的路徑

'string' (該選項當rastrue時有效。當cipherfalse時路徑後自動增長子文件夾需傳入文件夾名稱)

public_key_path

公鑰文件的路徑

'string' (該選項當rastrue時有效。當cipherfalse時路徑後自動增長子文件夾需傳入文件夾名稱)

private_key_name

私鑰文件名

'string' (該選項當rastrue時有效)

public_key_name

公鑰文件名

'string' (該選項當rastrue時有效)

get

啓用get

true / false(通常爲false;當rsatrue時需爲false)

參數

說明

db_type

數據庫類型

mysql

db_host

服務器地址

'string'

db_port

端口

'int'

db_name

數據庫名

'string'

db_user

用戶名

'string'

db_pwd

密碼

'string'

 

  • 配置說明

可經過/showstruct.php快速生成。但生成後仍建議設置相應權限。

public static $_tables =array(

'0'=> array(

       '0' => '表名1',

'參數' =>''

),

'1'=> array(

       '0' => '表名2',

'參數' =>''

)

);


public static $_fields =array(

'0'=> array(

       '0' => '字段名1',

       '1' => '字段類型1',

'參數' =>''

),

'1'=> array(

       '0' => '字段名2',

       '1' => '字段類型2',

'參數' =>''

)

);

表權限配置

參數

說明

add

容許增長

true / false  默認爲true

del

容許刪除

true / false  默認爲true

edit

容許修改

true / false  默認爲true

select

容許查詢

true / false  默認爲true

字段權限配置

isuid

身份標識

當爲身份標識時接口內部使用;每一個表僅有一個字段須要設置該屬性;禁止任何外部調用; editselect設置失效。默認爲false

edit

容許修改

true / false  默認爲true

select

容許查詢

true / false  默認爲true

pattern

正則過濾

'string' 正則表達式  默認爲空


  • 根據$data['b']['i']作用戶操做權限判斷。

  • 根據$data['b']['d']作用戶操做時限判斷。

  • 根據$data['b']['t']作用戶身份判斷並賦值$_uid


傳入參數

參數

說明

data

傳入值

'string' (加密/非加密) json

傳出參數

參數

說明

state

執行狀態

0未執行 /   1已執行

code

返回代碼

參閱「code代碼說明」

info

返回信息

'string' (加密/非加密) json

 

data名稱 / 值列表 (javascript爲例)

名稱

說明

data[b]

基本內容

'array' (參下)

data[b][i]

身份標識

'string' 必需

例:

var temp = 'id';

data[b][d]

時間戳

'int' 必需

例:

var temp = 1461143961;

名稱

說明

data[b][t]

令牌

'string' (身份id + MD5(登錄密碼 ) + 時間戳)

可選 (沒有該鍵的狀況下默認爲seeion驗證)

例:

var temp = 'id49ba59abbe56e0571461143961';

data[c]

執行內容

'array' (參下)

data[c][][a]

操做類型

'int' (0增長, 1刪除, 2修改, 3查詢) 必需

0返回增長id1, 2返回影響行數;3返回具體array

例:

var temp = 0;

data[c][][t]

操做的表

'int' (後臺生成且容許相應操做) 必需

例:

var temp = 1;

data[c][][V]

字段值

'array' 操做類型爲0, 2時必需

格式:'字段代號' : '字段值'

字段代號由後臺生成且容許相應操做

例:

var temp = {

'1' : 'abc',

'2' : true,

'3' : 1,

};

data[c][][w]

條件

'array' 操做類型爲1,  2, 3時可選

格式:

  1. 1.      條件關係

'logic' : '具體關係'

字段與字段的條件關係

or / and 默認爲and

  1. 2.      具體條件

i.     'logic'  : '具體關係'

字段內的條件關係

or / and 默認爲and

ii.   '字段代號' : {

  '條件類型' : '條件值' *條件值有多是'array'

}

字段代號由後臺生成且容許相應操做

  1. 3.      條件類型

等於:'eq' : '具體值'

不等於:'neq' : '具體值'

大於:'gt' : '具體值'

大於等於:'egt' : '具體值'

小於:'lt' : '具體值'

小於等於:'elt' : '具體值'

模糊查詢:

'like' : '具體值'

'like' : 'arrayA'

  arrayA

   '0' : 'arrayB',

'1' : '條件關係(or / and)'

  arrayB

   '索引' : '具體值'

模糊查詢(反):'notlike' : '具體值'

區間查詢:

'between' : 'array'

array

'0' : '起始值',

'1' : '結束值'

區間查詢(反):'notbetween' : 'array' (同上)

IN查詢:

'in' : 'array'

array

'索引' : '具體值'

IN查詢(反):'notin' : 'array' (同上)


例:

var temp = {

'logic' : 'or',

'1' : {

  'logic' : 'and',

'eq' : '1',

'like' : {

'0' : {

'0' : '%',

'1' : '%'

},

'1' : 'or'

}

},

'2' : {

'eq' : '2'

}

};

data[c][][s]

顯示字段

'string' 操做類型爲3時必需

格式:'字段代號1, 字段代號2, 字段代號3,……'

字段代號由後臺生成且容許相應操做

例:

var temp = ['1', '2', '3', '5'];

data[c][][o]

排序

'array' 操做類型爲3時可選

格式:'字段代號' : '排序方式'

排序方式:'' / desc默認爲空(升序)

字段代號由後臺生成且容許相應操做

例:

var temp = {

'1' : '',

'2' : 'desc'

};

data[c][][l]

起始和數量

'string' 操做類型爲3時可選

格式:'起始, 數量'

例:

var temp = ['1', '5'];

 

  • 代碼說明

代碼

說明

0000

正常

A001

php須要mbstring擴展支持

A002

拒絕訪問錯誤身份

C000

配置文件調試模式錯誤

C001

配置文件獲取數據模式錯誤

C002

配置文件私鑰文件的路徑錯誤

C003

配置文件公鑰文件的路徑錯誤

C004

配置文件私鑰文件名錯誤

C005

配置文件公鑰文件名錯誤

C006

配置文件密送方式錯誤

C007

配置文件加密開關錯誤

代碼

說明

C008

配置文件數據庫參數錯誤

C009

配置文件數據庫類型錯誤

C010

mysql基本設置表容許增長開關設置錯誤

C011

mysql基本設置表容許刪除開關設置錯誤

C012

mysql基本設置表容許修改開關設置錯誤

C013

mysql基本設置表容許查詢開關設置錯誤

C014

mysql基本設置字段容許修改開關設置錯誤

C015

mysql基本設置字段容許查詢開關設置錯誤

C016

mysql基本設置字段身份標識開關設置錯誤

D001

php須要pdo_mysql擴展支持

D002

數據庫鏈接錯誤

D003

sql執行錯誤

E001

php須要openssl擴展支持

E002

私鑰文件不存在

E003

私鑰不可用

E004

公鑰文件不存在

E005

公鑰不可用

E006

加密出錯

E007

解密出錯

E008

私鑰路徑錯誤

E009

公鑰路徑錯誤

代碼

說明

G001

缺乏傳入參數data[b]

G002

缺乏傳入參數data[b][i]

G003

傳入值錯誤data[b][i]

G004

缺乏傳入參數data[b][d]

G005

傳入值錯誤data[b][d]

G006

缺乏傳入參數data[c]

G007

缺乏傳入參數data[c][][a]

G008

傳入值錯誤data[c][][a]

G009

缺乏傳入參數data[c][][t]

G010

傳入值錯誤data[c][][t]

G011

傳入參數不容許增長操做data[c][][t]

G012

傳入參數不容許刪除操做data[c][][t]

G013

傳入參數不容許修改操做data[c][][t]

G014

傳入參數不容許查詢操做data[c][][t]

G015

缺乏傳入參數data[c][][v]

G016

傳入參數不容許更改操做data[c][][v][]

G017

傳入參數錯誤data[c][][v][]

G018

傳入值不容許爲空data[c][][v][]

G019

傳入值類型錯誤data[c][][v][]

G020

傳入值超出範圍data[c][][v][]

G021

傳入值格式錯誤data[c][][v][]

代碼

說明

G022

傳入參數不容許任何操做data[c][][v][]

G023

傳入參數不容許任何操做data[c][][w][]

G024

傳入參數錯誤data[c][][w][]

G025

傳入參數錯誤data[c][][w][][]

G026

缺乏傳入參數data[c][][s]

G027

傳入值錯誤data[c][][s]

G028

傳入值不容許任何操做data[c][][s]

G029

傳入值不容許查詢操做data[c][][s]

G030

傳入參數錯誤data[c][][o][]

G031

傳入參數不容許任何操做data[c][][o][]

G032

傳入值錯誤data[c][][o][]

G033

該值僅容許輸入兩個參數data[c][][l]

G034

傳入值錯誤data[c][][l][]

相關文章
相關標籤/搜索