使用Thinkphp框架开发移动端接口(1)

给原生APP提供api接口


1. [代码]使用TP框架时 放在common文件夹下文件名就叫function.php

<?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. [代码]查询单个果品详细信息

/**
   * 发布模块
   *
   * 获取信息单个果品详细信息
   *
   */
   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 

/**
   * 查询一条数据
   */
   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之后)

{
   "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"
     ]
   }
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值