溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php mysql APP接口 移動(dòng)端接口API   M-API 開源代碼

發(fā)布時(shí)間:2020-07-02 09:11:12 來源:網(wǎng)絡(luò) 閱讀:2579 作者:我想說我不是神 欄目:數(shù)據(jù)庫

開源協(xié)議:Apache License 2.0

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

M-API


概述... 1

 

一、    接口文檔結(jié)構(gòu)... 3

 

二、    接口環(huán)境設(shè)置... 3

 

1.   開發(fā)環(huán)境... 3

 

2.   生產(chǎn)環(huán)境... 3

 

三、    基本配置說明... 4

 

四、    mysql配置說明... 5

 

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

 

六、    接口參數(shù)說明... 7

 

七、    code代碼說明... 12

 


 

概述


為了方便前端以及移動(dòng)端接口的開發(fā),將相應(yīng)功能整合為一個(gè)可快速設(shè)置應(yīng)用的Web API,從而加快項(xiàng)目開發(fā)的周期。M-API通過簡單設(shè)置可將數(shù)據(jù)庫選擇性的暴露給調(diào)用方。當(dāng)然,為了安全考慮,建議設(shè)置相應(yīng)的操作權(quán)限。該文檔適合有一定基礎(chǔ)的PHPer。

M-API開發(fā)環(huán)境為:php-7.0.4,  mysql-5.7.11。同時(shí)支持php5.6.0,其它版本未進(jìn)行測試。

M-API運(yùn)行環(huán)境需要開啟mbstring;加密操作需要開啟openssl;數(shù)據(jù)庫操作需要開啟pdo_mysql。

M-API支持密送和簽名。目前只支持RSA加密。鑒于RSA的特性,當(dāng)交互信息量較大時(shí)建議修改為僅加密處理敏感信息,其它信息采用對稱加密;或?qū)鬏攨f(xié)議改為HTTPS。如果必須使用RSA,可將信息進(jìn)行分段處理。

M-API支持getpost

M-API數(shù)據(jù)庫目前僅支持mysql。

M-API全部采用PDO 預(yù)處理操作數(shù)據(jù)庫。

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

M-API支持同時(shí)多個(gè)數(shù)據(jù)庫連接。同樣,也支持同時(shí)多組基本設(shè)置調(diào)用。

M-API支持表級(jí)別和列級(jí)別的操作權(quán)限設(shè)置。

M-API可指定關(guān)聯(lián)字段,以避免注入。

M-API支持自動(dòng)數(shù)據(jù)有效性的驗(yàn)證。可手動(dòng)指定正則驗(yàn)證。

M-API接收和傳出數(shù)據(jù)均為json

M-API不支持事務(wù)。請?jiān)跇I(yè)務(wù)邏輯中進(jìn)行處理。

M-API不支持聯(lián)結(jié)查詢。請使用視圖查詢。

最終解釋權(quán)歸開發(fā)者所有。

未盡事宜,后續(xù)補(bǔ)充。

能力一般,水平有限。請多多包涵。



/class/basic.class.php————————基礎(chǔ)類  基本配置信息

/class/mysql.class.php————————數(shù)據(jù)庫類 mysql

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

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

/class/standard.class.php———————標(biāo)準(zhǔn)類常用函數(shù)


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


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

/showstruct.php——————————— 快速顯示數(shù)據(jù)庫結(jié)構(gòu)




需要配置以下文件

/class/basic.class.php

/class/mysql.config.class.php

/index.php

  1. 2.    生產(chǎn)環(huán)境

需刪除以下文件

/readme.docx

/showstruct.php



public static $_config =array(

'default'=> array(

       '參數(shù)' => ‘

),

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

       '參數(shù)' => ''

)

);

基本配置

參數(shù)

說明

display_errors

啟用調(diào)試

true / false

rsa

啟用rsa加密

true / false

cipher

啟用密送

true / false

private_key_path

私鑰文件的路徑

'string' (該選項(xiàng)當(dāng)rastrue時(shí)有效。當(dāng)cipherfalse時(shí)路徑后自動(dòng)增加子文件夾需傳入文件夾名稱)

public_key_path

公鑰文件的路徑

'string' (該選項(xiàng)當(dāng)rastrue時(shí)有效。當(dāng)cipherfalse時(shí)路徑后自動(dòng)增加子文件夾需傳入文件夾名稱)

private_key_name

私鑰文件名

'string' (該選項(xiàng)當(dāng)rastrue時(shí)有效)

public_key_name

公鑰文件名

'string' (該選項(xiàng)當(dāng)rastrue時(shí)有效)

get

啟用get

true / false(一般為false;當(dāng)rsatrue時(shí)需為false)

參數(shù)

說明

db_type

數(shù)據(jù)庫類型

mysql

db_host

服務(wù)器地址

'string'

db_port

端口

'int'

db_name

數(shù)據(jù)庫名

'string'

db_user

用戶名

'string'

db_pwd

密碼

'string'

 

  • 配置說明

可通過/showstruct.php快速生成。但生成后仍建議設(shè)置相應(yīng)權(quán)限。

public static $_tables =array(

'0'=> array(

       '0' => '表名1',

'參數(shù)' =>''

),

'1'=> array(

       '0' => '表名2',

'參數(shù)' =>''

)

);


public static $_fields =array(

'0'=> array(

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

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

'參數(shù)' =>''

),

'1'=> array(

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

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

'參數(shù)' =>''

)

);

表權(quán)限配置

參數(shù)

說明

add

允許增加

true / false  默認(rèn)為true

del

允許刪除

true / false  默認(rèn)為true

edit

允許修改

true / false  默認(rèn)為true

select

允許查詢

true / false  默認(rèn)為true

字段權(quán)限配置

isuid

身份標(biāo)識(shí)

當(dāng)為身份標(biāo)識(shí)時(shí)接口內(nèi)部使用;每個(gè)表僅有一個(gè)字段需要設(shè)置該屬性;禁止任何外部調(diào)用; editselect設(shè)置失效。默認(rèn)為false

edit

允許修改

true / false  默認(rèn)為true

select

允許查詢

true / false  默認(rèn)為true

pattern

正則過濾

'string' 正則表達(dá)式  默認(rèn)為空


  • 根據(jù)$data['b']['i']做用戶操作權(quán)限判斷。

  • 根據(jù)$data['b']['d']做用戶操作時(shí)限判斷。

  • 根據(jù)$data['b']['t']做用戶身份判斷并賦值$_uid。


傳入?yún)?shù)

參數(shù)

說明

data

傳入值

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

傳出參數(shù)

參數(shù)

說明

state

執(zhí)行狀態(tài)

0未執(zhí)行 /   1已執(zhí)行

code

返回代碼

參閱“code代碼說明”

info

返回信息

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

 

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

名稱

說明

data[b]

基本內(nèi)容

'array' (參下)

data[b][i]

身份標(biāo)識(shí)

'string' 必需

例:

var temp = 'id';

data[b][d]

時(shí)間戳

'int' 必需

例:

var temp = 1461143961;

名稱

說明

data[b][t]

令牌

'string' (身份id + MD5(登陸密碼 ) + 時(shí)間戳)

可選 (沒有該鍵的情況下默認(rèn)為seeion驗(yàn)證)

例:

var temp = 'id49ba59abbe56e0571461143961';

data[c]

執(zhí)行內(nèi)容

'array' (參下)

data[c][][a]

操作類型

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

0返回增加id;1, 2返回影響行數(shù);3返回具體array。

例:

var temp = 0;

data[c][][t]

操作的表

'int' (后臺(tái)生成且允許相應(yīng)操作) 必需

例:

var temp = 1;

data[c][][V]

字段值

'array' 操作類型為0, 2時(shí)必需

格式:'字段代號(hào)' : '字段值'

字段代號(hào)由后臺(tái)生成且允許相應(yīng)操作

例:

var temp = {

'1' : 'abc',

'2' : true,

'3' : 1,

};

data[c][][w]

條件

'array' 操作類型為1,  2, 3時(shí)可選

格式:

  1. 1.      條件關(guān)系

'logic' : '具體關(guān)系'

字段與字段的條件關(guān)系

or / and 默認(rèn)為and

  1. 2.      具體條件

i.     'logic'  : '具體關(guān)系'

字段內(nèi)的條件關(guān)系

or / and 默認(rèn)為and

ii.   '字段代號(hào)' : {

  '條件類型' : '條件值' *條件值有可能是'array'

}

字段代號(hào)由后臺(tái)生成且允許相應(yīng)操作

  1. 3.      條件類型

等于:'eq' : '具體值'

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

大于:'gt' : '具體值'

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

小于:'lt' : '具體值'

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

模糊查詢:

'like' : '具體值'

'like' : 'arrayA'

  arrayA

   '0' : 'arrayB',

'1' : '條件關(guān)系(or / and)'

  arrayB

   '索引' : '具體值'

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

區(qū)間查詢:

'between' : 'array'

array

'0' : '起始值',

'1' : '結(jié)束值'

區(qū)間查詢(反):'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時(shí)必需

格式:'字段代號(hào)1, 字段代號(hào)2, 字段代號(hào)3,……'

字段代號(hào)由后臺(tái)生成且允許相應(yīng)操作

例:

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

data[c][][o]

排序

'array' 操作類型為3時(shí)可選

格式:'字段代號(hào)' : '排序方式'

排序方式:'' / desc默認(rèn)為空(升序)

字段代號(hào)由后臺(tái)生成且允許相應(yīng)操作

例:

var temp = {

'1' : '',

'2' : 'desc'

};

data[c][][l]

起始和數(shù)量

'string' 操作類型為3時(shí)可選

格式:'起始, 數(shù)量'

例:

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

 

  • 代碼說明

代碼

說明

0000

正常

A001

php需要mbstring擴(kuò)展支持

A002

拒絕訪問錯(cuò)誤身份

C000

配置文件調(diào)試模式錯(cuò)誤

C001

配置文件獲取數(shù)據(jù)模式錯(cuò)誤

C002

配置文件私鑰文件的路徑錯(cuò)誤

C003

配置文件公鑰文件的路徑錯(cuò)誤

C004

配置文件私鑰文件名錯(cuò)誤

C005

配置文件公鑰文件名錯(cuò)誤

C006

配置文件密送方式錯(cuò)誤

C007

配置文件加密開關(guān)錯(cuò)誤

代碼

說明

C008

配置文件數(shù)據(jù)庫參數(shù)錯(cuò)誤

C009

配置文件數(shù)據(jù)庫類型錯(cuò)誤

C010

mysql基本設(shè)置表允許增加開關(guān)設(shè)置錯(cuò)誤

C011

mysql基本設(shè)置表允許刪除開關(guān)設(shè)置錯(cuò)誤

C012

mysql基本設(shè)置表允許修改開關(guān)設(shè)置錯(cuò)誤

C013

mysql基本設(shè)置表允許查詢開關(guān)設(shè)置錯(cuò)誤

C014

mysql基本設(shè)置字段允許修改開關(guān)設(shè)置錯(cuò)誤

C015

mysql基本設(shè)置字段允許查詢開關(guān)設(shè)置錯(cuò)誤

C016

mysql基本設(shè)置字段身份標(biāo)識(shí)開關(guān)設(shè)置錯(cuò)誤

D001

php需要pdo_mysql擴(kuò)展支持

D002

數(shù)據(jù)庫連接錯(cuò)誤

D003

sql執(zhí)行錯(cuò)誤

E001

php需要openssl擴(kuò)展支持

E002

私鑰文件不存在

E003

私鑰不可用

E004

公鑰文件不存在

E005

公鑰不可用

E006

加密出錯(cuò)

E007

解密出錯(cuò)

E008

私鑰路徑錯(cuò)誤

E009

公鑰路徑錯(cuò)誤

代碼

說明

G001

缺少傳入?yún)?shù)data[b]

G002

缺少傳入?yún)?shù)data[b][i]

G003

傳入值錯(cuò)誤data[b][i]

G004

缺少傳入?yún)?shù)data[b][d]

G005

傳入值錯(cuò)誤data[b][d]

G006

缺少傳入?yún)?shù)data[c]

G007

缺少傳入?yún)?shù)data[c][][a]

G008

傳入值錯(cuò)誤data[c][][a]

G009

缺少傳入?yún)?shù)data[c][][t]

G010

傳入值錯(cuò)誤data[c][][t]

G011

傳入?yún)?shù)不允許增加操作data[c][][t]

G012

傳入?yún)?shù)不允許刪除操作data[c][][t]

G013

傳入?yún)?shù)不允許修改操作data[c][][t]

G014

傳入?yún)?shù)不允許查詢操作data[c][][t]

G015

缺少傳入?yún)?shù)data[c][][v]

G016

傳入?yún)?shù)不允許更改操作data[c][][v][]

G017

傳入?yún)?shù)錯(cuò)誤data[c][][v][]

G018

傳入值不允許為空data[c][][v][]

G019

傳入值類型錯(cuò)誤data[c][][v][]

G020

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

G021

傳入值格式錯(cuò)誤data[c][][v][]

代碼

說明

G022

傳入?yún)?shù)不允許任何操作data[c][][v][]

G023

傳入?yún)?shù)不允許任何操作data[c][][w][]

G024

傳入?yún)?shù)錯(cuò)誤data[c][][w][]

G025

傳入?yún)?shù)錯(cuò)誤data[c][][w][][]

G026

缺少傳入?yún)?shù)data[c][][s]

G027

傳入值錯(cuò)誤data[c][][s]

G028

傳入值不允許任何操作data[c][][s]

G029

傳入值不允許查詢操作data[c][][s]

G030

傳入?yún)?shù)錯(cuò)誤data[c][][o][]

G031

傳入?yún)?shù)不允許任何操作data[c][][o][]

G032

傳入值錯(cuò)誤data[c][][o][]

G033

該值僅允許輸入兩個(gè)參數(shù)data[c][][l]

G034

傳入值錯(cuò)誤data[c][][l][]

 


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI