インタフェースプローブ


引用:会社はiOSアプリケーションを作っているので、多くのデータが必要です.データは一般にインタフェースによって提供される.
ここのインタフェースはjavaのインタフェース、またはPHPのインタフェースではありません.インタフェースはマクロ的に大きく、内容が多く、usbはインタフェースであり、コンセントはインタフェースである.言語ではjavaのInterfaceがインタフェースです.
データ転送を提供することも、インタフェースの一種です.
 
インタフェースの作成は、一定の基準に合致し、規範化し、テストしなければならない.
一般的にjsonのフォーマットでデータが伝達されます.
コードケース:
1.テストデータの提出
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"></head>
<body>
    <form action="http://local.ebookbag_demo2.com/api/iphone" method="post" >
        <input name="json" type="text" />
        <input type="submit"/>
    </form>
</body>
</html>

post方式で、申請情報をサーバに提出し、一般的にjsonのデータである.
例えば、{"reqCode":"bag 00090","data":{"class_id":"7"}}
これがjson形式のデータですbag 00090、情報、class_id
 
2.バックグラウンドはデータを受け取り、データを抽出します.
$json = $_POST;
        //print_r(json_decode($json['json'],true));exit;
        if (array_key_exists('json', $json)) {
            $info = json_decode($json['json'], true);
        } else {
            echo "     ,       !";
            die();
        }

jsonデータを配列情報に解析します.
3.パラメータ解析
//    
        $str = '';
        if ($info["data"]) {
            foreach ($info["data"] as $key => $val) {
                $str.= "/" . $key . "/" . $val;
            }
        }

パラメータはいずれもdataにあり,パラメータをブラウザで認識できるパラメータに解析する.
 
4.該当するアクションにジャンプし、動作を実行する
//  reqCode     
        switch ($info["reqCode"]) {
            case 'bag00001':
                //    (  email、passwd) // version 1.1
                //  //{"reqCode":"bag00001","data":{"number":"201","passwd":"b","position":"3"}} // position 1     3   
                //  {"redCode":"bag00001","status":"1","data":{"uid":"1"}}
                $this->_redirect("/api/user/login" . $str . "/reqCode/" . $info["reqCode"]);
                break;
.....
 case 'bag00090':
            // stocket   class_id,            ID
            //{"reqCode":"bag00090","data":{"class_id":"7"}}
            //    {"reqCode":"bag00090","status":"1","data":{"lessons_id":"2949"}}   {"reqCode":"bag00090","status":"2","data":"fail"} 
                $info = json_decode($json['json'], true);
                $this->_forward('socketbystulogin', 'lessons', 'api', $info);
       break;  

さっきのbag 00090はapiの下のlessonsコントローラのsocketbystuloginメソッドにジャンプし、対応する動作を実行します.
5.
function socketbystuloginAction() {

        $reqCode = $this->_getParam('reqCode');
        $data = $this->_getParam('data');
        $daoLessons = new dao_lessons();
        //$time = time();//      add by vinson 2013-04-23 
        $time = 1348703999;//   
        
        $where['lessons.class_id= ? '] = $data['class_id'];
        $where['lessons.endtime >?'] = $time;
        $order = " endtime ASC ";

        //print_r($where);
        $aLessons = $daoLessons->getlessons($where, $order, 1, 0, false, false, false, 0);
        //print_r($aLessons);

        if ($aLessons) {
            /**
             *               
             */
            $startime = $aLessons[0]['startime'];
            $info['lessons_id'] = $aLessons[0]['id'];
            if ($startime > $time) {//    
                $this->_red(array('reqCode' => $reqCode, 'status' => 0, 'data' => $info));
            } else {//  
                $this->_red(array('reqCode' => $reqCode, 'status' => 1, 'data' => $info));
            }
        }
        $this->_red(array('reqCode' => $reqCode, 'status' => 2, 'data' => 'fail'));
    }

json暗号化を行います.その後iOSスタッフに渡して使用します.
 
まとめ:
これは簡単なインタフェースの流れで、インタフェースを書くには、一定の規範が必要です.はっきり言って、それは1種の思想で、それから言語を通じてこのような思想を実現します.
カスタマーサービス側は、サーバーにアクセスし、一定のパラメータを提供し、対応する情報を取得することができます.このような過程です.
作成するときは、彼らが提供したパラメータに基づいて、彼らが望んでいる情報を正確に取得できればいい.