• 原生sql实现restful接口调用


    index.php

    <?php
    
    include './Request.php';
    include './Response.php';
    //获取数据
    $data=Request::getRequest();
    $result=Response::sendResponse($data);
    echo  $result;
    ?>
    Request.php 
    
    <?php
    class Request{
        private static $method_type=array('get','post','put','delete','patch');
        private static $FruitList=array(
            1=>array('name'=>'apple','num'=>10),
            2=>array('name'=>'grape','num'=>20),
            3=>array('name'=>'orange','num'=>40),
            4=>array('name'=>'banana','num'=>30),
            5=>array('name'=>'peach','num'=>50),
            6=>array('name'=>'mango','num'=>60)
        );
        public static function getRequest(){
            $method=strtolower($_SERVER['REQUEST_METHOD']);
            if(in_array($method,self::$method_type)){
                 $methodName=$method.'Data';
                 return self::$methodName($_REQUEST);
            }
            return false;
        }
        //get 查询
        private static function getData($params){
            $fruitId=(int)$params['fruit'];
            if($fruitId>0){
                return self::$FruitList[$fruitId];
            }else{
                return self::$FruitList;
            }
        }
        //post 添加
        private static function postData($params){
            if(!empty($params['name'])){
                $data['name']=$params['name'];
                $data['num']=(int)$params['num'];
                self::$FruitList[]=$data;
                return self::$FruitList;
            }else{
                return false;
            }
        }
    //put 更新水果信息(全部信息)
        private static function putData($params){
            $fruitId=(int)$params['fruit'];
            if($fruitId==0){
                return false;
            }
            $data=array();
            if(!empty($params['name'] && isset($params['num']))){
                $data['name']=$params['name'];
                $data['num']=(int)$params['num'];
                self::$FruitList['fruitId']=$data;
                return self::$FruitList;
            }else{
                return false;
            }
        }
        //patch 更新水果部分信息
        private static function patchData($params){
            $fruitId=(int)$params['fruit'];
            if($fruitId==0){
                return false;
            }
            if(!empty($params['name'])){
                self::$FruitList[$fruitId]['name']=$params['name'];
            }
            if(!isset($params['num'])){
                self::$FruitList[$fruitId]['num']=(int)$params['num'];
            }
            return self::$FruitList;
        }
        //delete 删除
        private static function deleteData($params)
        {
            $fruitId = (int)$params['fruit'];
            if($fruitId==0){
                return false;
            }
            unset(self::$FruitList[$fruitId]);
             return self::$FruitList;
        }
    }
    ?>
    
    
    Response.php
    <?php
    class Response{
        const HTTP_VERSION="HTTP/1.1";
        public  static function sendResponse($data){
            if($data){
                $code=200;
                $message='ok';
            }else{
                $code=404;
                $data=array('error'=>'Not Found');
                $message='Not Found';
            }
            //output
            header(self::HTTP_VERSION."".$code."".$message);
            $content_type=isset($_SERVER['CONTENT_TYPE'])?$_SERVER['CONTENT_TYPE']:$_SERVER['HTTP_ACCEPT'];
            if(strpos($content_type,'application/json')!==false){
                return self::encodeJSON($data);
            }else if(strpos($content_type,'application/xml')!==false){
                return self::encodeXml($data);
            }else{
                return self::encodeHtml($data);
            }
        }
        //json
        private static function encodeJson($responseData){
            header("Content-Type:application/json");
            return json_encode($responseData);
        }
        //xml
        private static function encodeXml($params){
            header("Content-Type:application/xml");
            $xml=new SimpleXMLElement('<?xml version="1.0"?><fruit></fruit>');
            foreach ($params as $key =>$value) {
                if(is_array($value)){
                     foreach($value as $k =>$v){
                        $xml->addChild($k,$v);
                     }
                }else{
                    $xml->addChild($key,$value);
                }
            }
            return $xml->asXML();
        }

    //html
       private static function encodeHtml($responseData){
            header("Content-Type:text/html");
            $html="<table border='1'>";
            foreach ($responseData as $key =>$value){
                $html.="<tr>";
                if(is_array($value)){
                    foreach($value as $k =>$v){
                        $html.="<td>".$k."</td><td>".$v."</td>";
                    }
                }else{
                     $html.="<td>".$key."</td><td>".$value."</td>";
                }
                $html="<tr>";
            }
            $html="</table>";
            return $html;
        }
    }
    
    ?>
     
     
     
    
    
    
    
    
  • 相关阅读:
    牛客网暑期ACM多校训练营(第三场)2018 A,PACM Team ( 01背包裸题 )
    牛客网暑期ACM多校训练营(第三场)2018 C , Shuffle Cards ( rope )
    简单的计算几何
    数论基本定理
    HDU-1698 Just a Hook
    HDU-1754 I Hate It ( 线段树入门 + update操作 )
    Base64
    openssl生成RSA非对称密钥---Windows
    AES-对称加密
    DES-对称加密
  • 原文地址:https://www.cnblogs.com/chaihtml/p/10436149.html
Copyright © 2020-2023  润新知