本文实例为大家分享了使用Thinkphp框架开发移动端接口代码,给原生APP提供api接口,具体内容如下
1. 使用TP框架时 放在common文件夹下文件名就叫function.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
<?php
/**
* Created by zhangkx
* Email: zkx520tnhb@163.com
* Date: 2015/8/1
* Time: 23:15
*/
/*************************** api开发辅助函数 **********************/
/**
* @param null $msg 返回正确的提示信息
* @param flag success CURD 操作成功
* @param array $data 具体返回信息
* Function descript: 返回带参数,标志信息,提示信息的json 数组
*
*/
function returnApiSuccess( $msg = null, $data = array ()){
$result = array (
'flag' => 'Success' ,
'msg' => $msg ,
'data' => $data
);
print json_encode( $result );
}
/**
* @param null $msg 返回具体错误的提示信息
* @param flag success CURD 操作失败
* Function descript:返回标志信息 ‘Error',和提示信息的json 数组
*/
function returnApiError( $msg = null){
$result = array (
'flag' => 'Error' ,
'msg' => $msg ,
);
print json_encode( $result );
}
/**
* @param null $msg 返回具体错误的提示信息
* @param flag success CURD 操作失败
* Function descript:返回标志信息 ‘Error',和提示信息,当前系统繁忙,请稍后重试;
*/
function returnApiErrorExample(){
$result = array (
'flag' => 'Error' ,
'msg' => '当前系统繁忙,请稍后重试!' ,
);
print json_encode( $result );
}
/**
* @param null $data
* @return array|mixed|null
* Function descript: 过滤post提交的参数;
*
*/
function checkDataPost( $data = null){
if (! empty ( $data )){
$data = explode ( ',' , $data );
foreach ( $data as $k => $v ){
if ((!isset( $_POST [ $k ]))||( empty ( $_POST [ $k ]))){
if ( $_POST [ $k ]!==0 && $_POST [ $k ]!== '0' ){
returnApiError( $k . '值为空!' );
}
}
}
unset( $data );
$data = I( 'post.' );
unset( $data [ '_URL_' ], $data [ 'token' ]);
return $data ;
}
}
/**
* @param null $data
* @return array|mixed|null
* Function descript: 过滤get提交的参数;
*
*/
function checkDataGet( $data = null){
if (! empty ( $data )){
$data = explode ( ',' , $data );
foreach ( $data as $k => $v ){
if ((!isset( $_GET [ $k ]))||( empty ( $_GET [ $k ]))){
if ( $_GET [ $k ]!==0 && $_GET [ $k ]!== '0' ){
returnApiError( $k . '值为空!' );
}
}
}
unset( $data );
$data = I( 'get.' );
unset( $data [ '_URL_' ], $data [ 'token' ]);
return $data ;
}
}
|
2. 查询单个果品详细信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
/**
* 发布模块
*
* 获取信息单个果品详细信息
*
*/
public function getMyReleaseInfo(){
//检查是否通过post方法得到数据
checkdataPost( 'id' );
$where [ 'id' ] = $_POST [ 'id' ];
$field [] = 'id,fruit_name,high_price,low_price,address,size,weight,fruit_pic,remark' ;
$releaseInfo = $this ->release_obj->findRelease( $where , $field );
$releaseInfo [ 'remark' ] = mb_substr( $releaseInfo [ 'remark' ],0,49, 'utf-8' ). '...' ;
//多张图地址按逗号截取字符串,截取后如果存在空数组则需要过滤掉
$releaseInfo [ 'fruit_pic' ] = array_filter ( explode ( ',' , $releaseInfo [ 'fruit_pic' ]));
$fruit_pic = $releaseInfo [ 'fruit_pic' ];unset( $releaseInfo [ 'fruit_pic' ]);
//为图片添加存储路径
foreach ( $fruit_pic as $k => $v ){
$releaseInfo [ 'fruit_pic' ][] = 'http://' . $_SERVER [ 'HTTP_HOST' ]. '/Uploads/Release/' . $v ;
}
if ( $releaseInfo ){
returnApiSuccess( '' , $releaseInfo );
} else {
returnApiError( '什么也没查到(+_+)!' );
}
}
|
3. findRelease() 方法的model
1
2
3
4
5
6
7
8
9
10
|
/**
* 查询一条数据
*/
public function findRelease($where,$field){
if ($where[ 'status' ] == '' || empty($where[ 'status' ])){
$where[ 'status' ] = array( 'neq' , '9' );
}
$result = $ this ->where($where)->field($field)->find();
return $result;
}
|
4. app端接收到的数据(解码json之后)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
{
"flag" : "success" ,
"message" : "" ,
"responseList" : {
"id" : "2" ,
"fruit_name" : "苹果" ,
"high_price" : "8.0" ,
"low_price" : "5.0" ,
"address" : "天津小白楼水果市场" ,
"size" : "2.0" ,
"weight" : "2.0" ,
"remark" : "急需..." ,
"fruit_pic" : [
"http://fruit.txunda.com/Uploads/Release/201508/55599e7514815.png" ,
"http://fruit.txunda.com/Uploads/Release/201508/554f2dc45b526.jpg"
]
}
}
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。